一致するものが存在する場合はAWKを使用して新しい行を追加します

一致するものが存在する場合はAWKを使用して新しい行を追加します

次の形式のファイルがあります:

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

出力は次のようになります。

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

AWK を使用してこれをどのように実現できるでしょうか? sed と awk を試しましたが、区切り文字の後に新しい行を印刷することしかできず、次の行に全体を印刷する方法がわかりません。

答え1

sed: 翻訳:

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

&各文字列をすべて置換する必要がある場合は、g最後の文字列の後に追加するだけです/

awk :

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

&各文字列をすべて置換する必要がある場合は、gsub代わりにを使用しますsub

関連情報