it-swarm.com.de

Zeilenenden konvertieren

Ich habe d2u Verwendet, um Zeilenenden zu konvertieren. Nach der Installation von Puppy Linux ist mir aufgefallen, dass es nicht mit d2u, Sondern mit dos2unix Geliefert wird. Dann bemerkte ich, dass Ubuntu beide standardmäßig fehlt.

Was ist eine andere Möglichkeit, Zeilenenden zu konvertieren?

53
Steven Penny

Dies mit POSIX zu tun, ist schwierig:

  • POSIX Sed unterstützt weder \r Noch \15. Selbst wenn dies der Fall ist, ist die In-Place-Option -i Nicht POSIX

  • POSIX Awk unterstützt \r Und \15, Jedoch ist die Option -i inplace Nicht POSIX

  • d2u und dos2unix sind nicht POSIX-Dienstprogramme , aber ex ist

  • POSIX ex unterstützt nicht \r, \15, \n Oder \12

So entfernen Sie Wagenrückläufe:

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

So fügen Sie Wagenrückläufe hinzu:

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

Einige Optionen:

tr verwenden

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

ODER

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

Perl verwenden

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

sed verwenden

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

ODER

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

Um ^M Zu erhalten, müssen Sie CTRL-V Und dann CTRL-M Eingeben.

91
jaypal singh