Agregar una palabra final a una línea específica en el archivo

Agregar una palabra final a una línea específica en el archivo

Tengo un archivo que contiene muchas líneas como esta, por ejemplo.

AAA ATAGSGSGS
BBB Thhahahahahs
CCC lmmmmm
DDD GAGAGAGAGA

AAA IIIII
BBB OOOO
CCC YYYYY

...etcétera

Quiero agregar una palabra específica al final de todas las líneas que comienzan con CCC.

Por ejemplo. Quiero agregar la palabra 'sonrisa', por lo que el resultado será

AAA ATAGSGSGS
BBB Thhahahahahs
CCC lmmmmm smile
DDD GAGAGAGAGA

AAA IIIII
BBB OOOO
CCC YYYYY smile

¿Puedes decirme por favor cómo se puede hacer eso?

Respuesta1

sed -i.backup '/^CCC/s/$/ smile/' data.txt

Explore este comando y programa sed:

  1. sed -i.backupModo in situ: edite el archivo de entrada y (opcionalmente) haga una copia de seguridad del archivo original con el sufijo ( .backup).
  2. /^CCC/Expresión regular a buscar: cadena que comienza ( ^) con CCC.
  3. s/$/ smile/Busque el final de la cadena ( s/$/) y reemplácelo con una sonrisa ( smile/).

Respuesta2

Intentar:

sed -E 's/^(CCC.+)/\1 smile/' <data.in >data.out

También puedes editar en el lugar:

sed -i -E 's/^(CCC.+)/\1 smile/' data.dat

información relacionada