Ersetze \n durch \r\n in Unix-Datei
Ich versuche zu tun, das Gegenteil von diese Frage, ersetzt Unix-Zeilenenden mit Windows-Zeilenenden, so dass ich verwenden Sie SQL Server bcp über samba die Datei importieren. Ich habe sed
installiert, aber nicht dos2unix
. Ich habe versucht, die Umkehrung der Beispiele, aber ohne Erfolg.
Hier ist der Befehl, den ich verwende.
sed -e 's/\n/\r\n/g' myfile
Ich ausgeführt und dann lief od -c myfile
, erwartet, um zu sehen \r\n
wo es verwendet werden \n
. Aber da alle noch \n
. (Oder zumindest Sie zu sein scheinen. Die Ausgabe von od-overflows mein Bildschirm Puffer, so dass ich nicht bekommen, um zu sehen der Anfang der Datei).
Habe ich noch nicht in der Lage, herauszufinden, was ich falsch mache. Irgendwelche Vorschläge?
Was das für ein compiler?
sehen Sie die top-fo-Datei: od -c Dateiname | less
oder
head filename | od -c
.oder
od -c filename | head
InformationsquelleAutor John M Gant | 2009-10-05
Du musst angemeldet sein, um einen Kommentar abzugeben.
dos2unix
auf der Maschine?sed
oder eine reguläre non-GNUsed
?Unter Solaris
/usr/bin/sed
erfordert:wo ich in der '^M' durch Eingabe von EinstellungenV EinstellungenM. Das '$' entspricht am Ende der Zeile und ersetzt das Ende der Zeile mit dem control-M. Sie können ein Skript auch.
Mechanismen erwartet
sed
zu erweitern '\r
' oder '\\r
' control-M gehen, um die Plattform-spezifischen, am besten.InformationsquelleAutor Jonathan Leffler
Wenn konfrontiert mit diesem, ich benutze eine einfache
perl
one-liner:weil
sed
Verhalten ist unterschiedlich, und ich weiß, dass das funktioniert.InformationsquelleAutor dlamblin
Brauchen Sie nicht die
-e
option.$
entspricht dem Zeilenendezeichen. Diesesed
Befehl einfügen\r
Zeichen vor dem Zeilenende:Laut der info-Handbuch zu GNU sed: "Alle entkommt eingeführt, hier sind GNU-Erweiterungen, mit Ausnahme von `\n'.".
Mein Fehler, nicht die Angabe der Unix-Geschmack. Ich bin mit AIX. +1 für die erste, weisen darauf hin, dass ich sollte auf der Suche für $ anstelle von "\n".
InformationsquelleAutor mob
Nur das hinzufügen einer
\r
(aka^M
finden Sie unter Jonathan Leffler Antwort) vor\n
ist nicht sicher, da die Datei möglicherweise im gemischten Modus EOL, so dass Sie dann das Risiko zu beenden, mit ein paar Zeilen becomming\r\r\n
. Die sichere Sache zu tun ist, entfernen Sie zuerst alle '\r' - Zeichen, und fügen Sie dann (eine einzige)\r
vor\n
.Aktualisiert
^M
.InformationsquelleAutor hlovdal
Diese stellt sicher, dass Sie nur einfügen \r wenn es keine \r vor \n Dieser arbeitete für mich.
InformationsquelleAutor Da Qi
Versuchen Sie es mit:
InformationsquelleAutor K Suresh Babu
Vielleicht, wenn Sie versuchen, es auf diese Weise
arbeiten, von meinem Verständnis Ihrer nur der Ersatz für die Konsolen-Ausgabe, die Sie benötigen, um die Ausgabe in eine Datei umleiten, in diesem Fall myfile.gewinnen, dann könnten Sie einfach umbenennen, was Sie wollen. Das ganze Drehbuch wäre (inside ein Verzeichnis voll von diese Art von Dateien):
gut ist Plattform-spezifisch, Jonathan Leffler Antwort ist besser
InformationsquelleAutor Juparave