Добавить конечное слово в определенную строку файла

Добавить конечное слово в определенную строку файла

У меня есть файл, содержащий много строк, например, таких:

AAA ATAGSGSGS
BBB Thhahahahahs
CCC lmmmmm
DDD GAGAGAGAGA

AAA IIIII
BBB OOOO
CCC YYYYY

...и так далее

Я хочу добавить определенное слово в конец всех строк, которые начинаются с CCC.

Например. Я хочу добавить слово «улыбка», поэтому результат будет таким:

AAA ATAGSGSGS
BBB Thhahahahahs
CCC lmmmmm smile
DDD GAGAGAGAGA

AAA IIIII
BBB OOOO
CCC YYYYY smile

Подскажите, пожалуйста, как это можно сделать?

решение1

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

Изучите эту команду и программу sed:

  1. sed -i.backupРежим «На месте» — редактирование входного файла и (при необходимости) резервное копирование исходного файла с суффиксом ( .backup).
  2. /^CCC/Регулярное выражение для поиска — строка, начинающаяся ( ^) с CCC.
  3. s/$/ smile/Найдите конец строки ( s/$/) и замените его на улыбку ( smile/).

решение2

Пытаться:

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

Вы также можете редактировать на месте:

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

Связанный контент