Замените \ x0D \ x0A пробелом в Unix. Sed - PullRequest
0 голосов
/ 31 октября 2018

Я пытаюсь заменить на пробел символы перевода строки (\ x0A) и возврата каретки (\ x0D).

Символы появляются в таблице, которую я экспортировал с кодировкой UTF-8 из базы данных в Sybase в Windows. Я манипулирую файлом в Unix.

До сих пор мне удавалось удалять их вручную в текстовых редакторах с обычным режимом поиска (без опции escape-символов), но я хотел бы запустить его для нескольких таблиц.

Я использовал безуспешно:

sed -i -e 's/\x0D\x0A/ /g' file_name.csv

Отредактированный :

sed -i -e 's/%\x0D\x0A%/ /g' file_name.csv
sed -i -e 's/%\CR\LF%/ /g' file_name.csv
sed -i -e 's/%\r\n%/ /g' file_name.csv
tr '\15\12'  '  ' < file_name.cvs
tr '\x0D\x0A'  '  ' < file_name.cvs

Вот так выглядит строка таблицы:

30,57786, «B1», «Philadelphia Coll Pharm 1879 \ x0D \ x0A», «Leaves»

Ответы [ 2 ]

0 голосов
/ 02 ноября 2018

Если текст содержит буквенные наклонные черты влево, их необходимо удвоить.

sed -i -e 's/\\x0D\\x0A/ /g' file_name.csv
0 голосов
/ 31 октября 2018

Вы можете легко сделать это в tr, что требует восьмеричной записи:

 tr '\15\12' '  ' < file_name.csv
  • \15 и \12 восьмеричные для x0D и x0A
  • Символы, используемые для их замены, являются просто пробелами в качестве второго аргумента tr.
...