Najszybszy i najbardziej podstawowy sposób na zamianę „\ r \ n” na „\ n” w pliku?

11

Przypuszczam, że trjest to bardziej podstawowa metoda, a zatem prawdopodobnie szybszy sposób na zastąpienie elementów w danym pliku.

Jednak tr może zastąpić tylko tyle samo znaków. znaczenie...

2 znaki można zastąpić tylko 2 znakami, co oznacza zamianę

\r\nz \njest wykluczone przeztr

jest następną najlepszą opcją sed?

sed jest najbardziej podstawowym i najszybszym sposobem na zastąpienie \r\ngo \nw pliku, biorąc pod uwagę brak możliwości w tr?

chciałbym przykład, jeśli to możliwe.

użytkownik73235
źródło
Co dokładnie oznacza „Most Core”?
Keith Thompson

Odpowiedzi:

23

Za pomocą sedmożesz:

sed 's/\r$//'

W ten sam sposób trmożesz tylko usunąć \r:

tr -d '\r'

chociaż spowoduje to usunięcie wszystkich instancji \r, po których nie będzie konieczne \n.

Cuonglm
źródło
2
Te dwa nie są identyczne. Pierwszy z zamień „\ r \ n” na „\ n” (skutecznie), ale drugi usunie wszystkie „\ r”, gdziekolwiek się pojawią. Rzadko pojawia się powrót karetki w pliku tekstowym, inny niż na końcu linii, ale może się zdarzyć.
AMS
4

Albo użyj dos2unix

na przykład:

$ echo -ne "1\r\n2" |  od -A n -t x1
 31 0d 0a 32
$ echo -ne "1\r\n2" | dos2unix | od -A n -t x1
 31 0a 32

widzimy zastąpić \r\nz\n

بارپابابا
źródło
To nie jest program na liście OP, ale moim zdaniem najczystszy sposób na wykonanie zadania. Używam go osobiście za każdym razem, gdy potrzebuję takiej konwersji.
рüффп