Der Befehl Unix sed erkennt \n
einen mit Escapezeichen versehenen Backslash n nicht als Zeilenumbruchzeichen. Beispielsweise ersetzt der Befehl sed "s!,!\n!g"
Kommas im Eingabetext durch den Buchstaben n und nicht durch ein Zeilenvorschubzeichen.
Wie kann ich sed \n
als Newline-Charakter interpretieren lassen?
shell-script
sed
special-characters
Hämanth
quelle
quelle
Antworten:
Wenn Sie verwenden
bash
, können Sie das Zeilenumbruchzeichen einfügen, indem Sie die Eingabetaste als drückenquelle
sed "s/,/\n/g"
arbeitet hier in bashquelle
Möglicherweise müssen Sie es mit einer Sekunde entkommen
\
sed 's!,!\\n!g'
Je nachdem, was Sie tun möchten, müssen Sie möglicherweise auch Leerzeichen entfernen.
Auch bei meinen Tests gab es Probleme mit der Verwendung von
"
's anstelle von'
' squelle
Die Mac-Version von sed hat diese Schwierigkeit. Versuchen Sie, die GNU-Version von sed mit
brew install coreutils
und dann zu installierensollte arbeiten. Alternativ
tr ',' \\n
sollte funktionieren, wenn die Suchzeichenfolge nur ein einzelnes Zeichen ist.quelle
Tatsächlich verarbeitet Unix Echo + Sed \ n nicht immer als Zeichen für eine neue Zeile. Ich habe es gelöst, indem ich stattdessen Wagenrücklauf-ASCII-0xd mit vertikalem Tabulator-ASCII-0xb bereitgestellt habe.
Fügen Sie beispielsweise mit dem Befehl sed unter Verwendung der Variablen ein neues Zeilenzeichen hinzu:
quelle