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.


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.


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


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.
рüффп
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.