Подтвердить что ты не робот

Преобразование строк

Я использовал d2u для преобразования строк. После установки Puppy Linux I заметил, что он не приходит с d2u, но dos2unix. Затем я заметил, что Ubuntu отсутствует по умолчанию.

Каков другой способ преобразования окончаний строк?

4b9b3361

Ответ 1

Выполнение этого с помощью POSIX сложно:

  • POSIX Sed не поддерживает \r или \15. Даже если бы это было так, то на месте опция -i не POSIX

  • POSIX Awk поддерживает \r и \15, однако опция -i inplace не POSIX

  • d2u и dos2unix не утилиты POSIX, но ex

  • POSIX ex не поддерживает \r, \15, \n или \12

Чтобы удалить возврат каретки:

awk 'BEGIN{RS="^$";ORS="";getline;gsub("\r","");print>ARGV[1]}' file

Чтобы добавить возврат каретки:

awk 'BEGIN{RS="^$";ORS="";getline;gsub("\n","\r&");print>ARGV[1]}' file

Ответ 2

Некоторые параметры:

Использование tr

tr -d '\15\32' < windows.txt > unix.txt

ИЛИ

tr -d '\r' < windows.txt > unix.txt 

Использование perl

perl -p -e 's/\r$//' < windows.txt > unix.txt

Использование sed

sed 's/^M$//' windows.txt > unix.txt

ИЛИ

sed 's/\r$//' windows.txt > unix.txt

Чтобы получить ^M, вы должны ввести CTRL-V, а затем CTRL-M.