Ich habe eine Datei, die viele Zeilen enthält, zum Beispiel wie diese
AAA ATAGSGSGS
BBB Thhahahahahs
CCC lmmmmm
DDD GAGAGAGAGA
AAA IIIII
BBB OOOO
CCC YYYYY
...und so weiter
Ich möchte am Ende aller Zeilen, die mit CCC beginnen, ein bestimmtes Wort hinzufügen.
Zum Beispiel. Ich möchte das Wort "smile" hinzufügen, also wird das Ergebnis sein
AAA ATAGSGSGS
BBB Thhahahahahs
CCC lmmmmm smile
DDD GAGAGAGAGA
AAA IIIII
BBB OOOO
CCC YYYYY smile
Können Sie mir bitte sagen, wie das geht?
Antwort1
sed -i.backup '/^CCC/s/$/ smile/' data.txt
Erkunden Sie diesen Sed-Befehl und das Programm:
sed -i.backup
Im Place-Modus – Eingabedatei bearbeiten und (optional) Originaldatei mit Suffix (.backup
) sichern./^CCC/
Zu suchender regulärer Ausdruck – Zeichenfolge, die^
mit CCC beginnt ().s/$/ smile/
Suche am Ende der Zeichenfolge (s/$/
) und ersetze es durch Smiley (smile/
).
Antwort2
Versuchen:
sed -E 's/^(CCC.+)/\1 smile/' <data.in >data.out
Sie können auch direkt vor Ort Änderungen vornehmen:
sed -i -E 's/^(CCC.+)/\1 smile/' data.dat