Ich habe eine Datei mit Zeichenfolgen, die durch Kommas getrennt sind. Ich versuche, die Kommas durch eine neue Zeile zu ersetzen. Ich habe es versucht:
sed 's/,/\n/g' file
aber es funktioniert nicht. Was übersehe ich?
Ich habe eine Datei mit Zeichenfolgen, die durch Kommas getrennt sind. Ich versuche, die Kommas durch eine neue Zeile zu ersetzen. Ich habe es versucht:
sed 's/,/\n/g' file
aber es funktioniert nicht. Was übersehe ich?
Offensichtlich \r
ist der Schlüssel!
$ sed 's/, /\r/g' file3.txt > file4.txt
Verwandelte dies:
ABFS, AIRM, AMED, BOSC, CALI, ECPG, FRGI, GERN, GTIV, HSON, IQNT, JRCC, LTRE,
MACK, MIDD, NKTR, NPSP, PME, PTIX, REFR, RSOL, UBNT, UPI, YONG, ZEUS
Zu diesem:
ABFS
AIRM
AMED
BOSC
CALI
ECPG
FRGI
GERN
GTIV
HSON
IQNT
JRCC
LTRE
MACK
MIDD
NKTR
NPSP
PME
PTIX
REFR
RSOL
UBNT
UPI
YONG
ZEUS
Dies funktioniert unter MacOS Mountain Lion (10.8), Solaris 10 (SunOS 5.10) und RHE Linux (Red Hat Enterprise Linux Server Version 5.3, Tikanga)...
$ sed 's/{pattern}/\^J/g' foo.txt > foo2.txt
... wo die ^J
erfolgt durch die Durchführung ctrl + v + j . Achten Sie auf die \
vor der ^J
.
PS, ich weiß, dass das sed in RHEL GNU ist, das MacOS sed basiert auf FreeBSD, und obwohl ich mir bei dem Solaris sed nicht sicher bin, glaube ich, dass dies mit so ziemlich jedem sed funktioniert. YMMV tho'...
Ich bin zwar spät dran mit diesem Beitrag, aber ich aktualisiere gerade meine Erkenntnisse. Diese Antwort ist nur für Mac OS X.
$ sed 's/new/
> /g' m1.json > m2.json
sed: 1: "s/new/
/g": unescaped newline inside substitute pattern
Im obigen Befehl habe ich versucht, mit Shift+Enter eine neue Zeile einzufügen, was nicht funktionierte. Also habe ich es dieses Mal mit "escaping" versucht, um den "unescaped newline", wie in der Fehlermeldung angegeben, einzufügen.
$ sed 's/new/\
> /g' m1.json > m2.json
Es hat geklappt! (unter Mac OS X 10.9.3)
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.