Відповіді:
Якщо ви збігаєте підрядку всього рядка, ви можете скористатися sкомандою sed із регулярним виразом, щоб зібрати решту рядка:
sed -i 's/^.*foo.*$/another string/' myfile.txt
або скористайтеся cкомандою для заміни відповідного рядка за один раз:
sed -i '/foo/ { c \
another string
}' myfile.txt
Якщо ви не хочете вводити багаторядкові команди у відповідь, ви можете замість цього ввести сценарій:
$ cat foo.sed
/foo/ { c \
another string
}
$ sed -i -f foo.sed myfile.txt
}'знаходиться на окремій лінії від another string: заміна - це все на другому рядку, у тому числі, }якщо ви його помістили.