Eingangstextdatei: datei.txtWie ersetzt man den Text, indem er keine bestimmte Zeichenfolge mit der gleichen Zeile enthält?
AAA
BBB_CCC
BBB
AAA BBB
Sie benötigen zu bekommen:
AAA_CCC
BBB_CCC
BBB_CCC
AAA_CCC BBB_CCC
ich das mit folgenden regexp sed nennen:
sed "/_CCC/! s/AAA/AAA_CCC/g;/_CCC/! s/BBB/BBB_CCC/g" file.txt > file_out.txt
Aber es produziert:
AAA_CCC
BBB_CCC
BBB_CCC
AAA_CCC BBB
Eine Lösung ruft sed zweimal in derselben Datei auf, aber ich denke, dass es einen eleganteren Weg gibt.
Haben Sie '_CCC' jedes Feld angehängt werden sollen oder nur auf Felder' AAA' und 'BBB'? Mit anderen Worten, was ist, wenn Sie das Feld 'DDD' haben, oder was, wenn Sie das Feld' BBB_CCC_BBB' haben? – PesaThe