Schnellste und wichtigste Methode, um "\ r \ n" in einer Datei durch "\ n" zu ersetzen?


11

Ich nehme an, es trist eine zentralere Methode und daher wahrscheinlich eine schnellere Möglichkeit, Dinge innerhalb einer bestimmten Datei zu ersetzen.

Tr kann jedoch nur die gleiche Anzahl von Zeichen ersetzen. Bedeutung...

2 Zeichen können nur durch 2 Zeichen ersetzt werden, was bedeutet, dass sie ersetzt werden

\r\nmit \nkommt über nicht in fragetr

ist die nächstbeste Option sed?

die meisten Kerne und schnellsten Weg ist , sed zu ersetzen \r\nmit \ndem Mangel an Fähigkeiten in tr gegeben in einer Datei?

möchte ein Beispiel, wenn möglich.


Was genau bedeutet "Most Core"?
Keith Thompson

Antworten:


23

Mit sedkönnen Sie tun:

sed 's/\r$//'

Der gleiche Weg kann mit tun tr, müssen Sie nur entfernen \r:

tr -d '\r'

obwohl dies alle Instanzen von entfernt \r, nicht notwendig gefolgt von \n.


2
Diese beiden sind nicht identisch. Der erste ersetzt '\ r \ n' durch '\ n' (effektiv), der zweite entfernt alle '\ r', wo immer sie erscheinen. Es ist ungewöhnlich, dass Wagenrücklauf in einer Textdatei angezeigt wird, außer am Ende der Zeile, aber es kann vorkommen.
Ams

4

ODER verwenden dos2unix

beispielsweise:

$ 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

wir können sehen, ersetzen \r\ndurch\n


Dies ist kein Programm in der OP-Liste, aber meiner Meinung nach der sauberste Weg, um die Arbeit zu erledigen. Ich persönlich benutze es jedes Mal, wenn ich eine solche Konvertierung benötige.
Februar
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.