J'ai utilisé d2u
pour convertir les fins de ligne. Après l’installation de Puppy Linux, j’ai remarqué qu’il ne venait pas avec d2u
, mais dos2unix
. Ensuite, j'ai remarqué qu'Ubuntu manquait à la fois par défaut.
Quel est un autre moyen de convertir les fins de ligne?
Faire cela avec POSIX est délicat:
POSIX Sed ne prend pas en charge \r
Ou \15
. Même si c'était le cas, l'option in place -i
N'est pas POSIX
POSIX Awk supporte \r
Et \15
, Mais l'option -i inplace
N'est pas POSIX.
d2u et dos2unix ne sont pas tilitaires POSIX , mais ex est
POSIX ex ne prend pas en charge \r
, \15
, \n
Ou \12
Pour supprimer les retours chariot:
awk 'BEGIN{RS="^$";ORS="";getline;gsub("\r","");print>ARGV[1]}' file
Pour ajouter des retours chariot:
awk 'BEGIN{RS="^$";ORS="";getline;gsub("\n","\r&");print>ARGV[1]}' file
Quelques options:
tr
tr -d '\15\32' < windows.txt > unix.txt
OU
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
OU
sed 's/\r$//' windows.txt > unix.txt
Pour obtenir ^M
, vous devez taper CTRL-V
et alors CTRL-M
.