У меня есть файл, содержащий много строк, например, таких:
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:
sed -i.backup
Режим «На месте» — редактирование входного файла и (при необходимости) резервное копирование исходного файла с суффиксом (.backup
)./^CCC/
Регулярное выражение для поиска — строка, начинающаяся (^
) с CCC.s/$/ smile/
Найдите конец строки (s/$/
) и замените его на улыбку (smile/
).
решение2
Пытаться:
sed -E 's/^(CCC.+)/\1 smile/' <data.in >data.out
Вы также можете редактировать на месте:
sed -i -E 's/^(CCC.+)/\1 smile/' data.dat