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?
Verwenden Sie eine ANSI-C-Zeichenkette $'string'
Sie benötigen einen Backslash-escaped literal newline, um zu sed zu gelangen. Zumindest in der Bash, $''
Zeichenfolgen ersetzen \n
mit einem echten Zeilenumbruch, aber dann müssen Sie den Backslash verdoppeln, den sed sieht, um den Zeilenumbruch zu umgehen, z.B.
echo "a,b" | sed -e $'s/,/\\\n/g'
Hinweis dies wird nicht bei allen Muscheln funktionieren aber bei den gängigsten funktionieren sie.
MacOS ist anders, es gibt zwei Möglichkeiten, dieses Problem mit sed in mac zu lösen
zuerst, verwenden \'$'\n''
ersetzen. \n
kann es unter MacOS funktionieren:
sed 's/,/\'$'\n''/g' file
die zweite, verwenden Sie einfach eine leere Zeile:
sed 's/,/\
/g' file
Ps. Achten Sie auf den Bereich, der durch '
die dritte, die Verwendung von gnu-sed anstelle von mac-sed
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.