Fügen Sie einer bestimmten Zeile in der Datei ein nachfolgendes Wort hinzu

Fügen Sie einer bestimmten Zeile in der Datei ein nachfolgendes Wort hinzu

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:

  1. sed -i.backupIm Place-Modus – Eingabedatei bearbeiten und (optional) Originaldatei mit Suffix ( .backup) sichern.
  2. /^CCC/Zu suchender regulärer Ausdruck – Zeichenfolge, die ^mit CCC beginnt ().
  3. 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

verwandte Informationen