Конвертировать окончания строк
Я использую d2u
конвертировать окончания строк. После установки Puppy Linux я заметил, что он не идет с d2u
, но dos2unix
, Тогда я заметил, что Ubuntu по умолчанию отсутствует.
Как еще можно конвертировать окончания строк?
2 ответа
Решение
Делать это с POSIX сложно:
POSIX Sed не поддерживает
\r
или же\15
, Даже если это так, вариант на месте-i
это не POSIXPOSIX Awk поддерживает
\r
а также\15
, Тем не менее-i inplace
вариант не POSIXd2u и 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
Некоторые варианты:
С помощью 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
,