Замена Sed на CRLF не работает

Этот параметр недоступен через графический интерфейс в версии nautilus, которая поставляется с RHEL 5, но его по-прежнему можно установить с помощью командной строки. Вам нужно будет использовать gconftool -2 , который доступен в RHEL 5. Это команда:

gconftool-2 --type bool --set /apps/nautilus/preferences/always_use_browser true

1
16.03.2020, 07:33
2 ответа

Цитата на самом деле есть, но она заменила начальную цитату при выводе на экран:

$ printf '%s\r\n' 'foo' | sed -e 's/^/"/g' -e 's/+/","/g' -e 's/$/\"/g' | od --format c
0000000   "   f   o   o  \r   "  \n
0000007

\r/CR/возврат каретки, перемещает позицию виртуального курсора, используемого для вывода текста, в начало строки, поэтому последнее "заканчивается перезаписью (в терминале только )первой кавычки.

Вы можете сначала отправить ввод через dos2unix, если только вы не хотите добавлять выражения sedдля обработки \r.

2
28.04.2021, 23:20

Вы можете уточнить выражение sed, чтобы исключить \r, если оно есть:

sed -e 's/^/"/' -e 's/+/","/g' -e 's/\r*$/"/' file

Поскольку начало -строки -и конец -строки существуют только один раз в строке, флаг gможно опустить. Не нужно экранировать двойные кавычки в «замене». Используйте «чередование» для дальнейшего упрощения:

sed -e 's/^\|\r*$/"/g' -e 's/+/","/g' file
1
28.04.2021, 23:20

Теги

Похожие вопросы