Verwenden Sie AWK, um eine neue Zeile hinzuzufügen, wenn eine Übereinstimmung vorhanden ist

Verwenden Sie AWK, um eine neue Zeile hinzuzufügen, wenn eine Übereinstimmung vorhanden ist

Ich habe eine Datei mit folgendem Format:

aaa@ bbb
bbb@ ccc& ddddd@ aaaf
ccc@ ddd& eee: abcd& dassda

Die Ausgabe sollte sein:

aaaa@ bbb
bbb@ ccc&
ddddd@ aaaf
ccc@ ddd&
eee@ abcd& dassda

Wie könnte ich dies mit AWK erreichen? Ich habe sed und awk ausprobiert, aber ich kann nur nach dem Trennzeichen eine neue Zeile drucken. Ich weiß nicht, wie ich das Ganze in die nächste Zeile drucken kann.

Antwort1

sed:

sed 's/& /\&\n/' file

falls Sie &in jeder Zeichenfolge alles ersetzen müssen, fügen Sie einfach gnach dem letzten hinzu /.

awk:

awk '{ sub(/& /,"&\n"); print }'

falls Sie alle &in jeder Zeichenfolge ersetzen müssen, verwenden Sie gsubstattdessen sub.

verwandte Informationen