Adicione a palavra final a uma linha específica no arquivo

Adicione a palavra final a uma linha específica no arquivo

Eu tenho um arquivo que contém muitas linhas como esta, por exemplo

AAA ATAGSGSGS
BBB Thhahahahahs
CCC lmmmmm
DDD GAGAGAGAGA

AAA IIIII
BBB OOOO
CCC YYYYY

...e assim por diante

Quero adicionar uma palavra específica no final de todas as linhas que começam com CCC.

Por exemplo. Quero adicionar a palavra 'sorriso', então o resultado será

AAA ATAGSGSGS
BBB Thhahahahahs
CCC lmmmmm smile
DDD GAGAGAGAGA

AAA IIIII
BBB OOOO
CCC YYYYY smile

Você pode me dizer, por favor, como pode fazer isso?

Responder1

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

Explore este comando e programa sed:

  1. sed -i.backupNo modo local - edite o arquivo de entrada e (opcionalmente) faça backup do arquivo original com sufixo ( .backup).
  2. /^CCC/Expressão regular a ser encontrada - string iniciada ( ^) com CCC.
  3. s/$/ smile/Pesquise o final da string ( s/$/) e substitua-o por smile ( smile/).

Responder2

Tentar:

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

Você também pode editar no local:

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

informação relacionada