Или с помощью редактора сценариевed
:найдите строку, содержащую «task Listen», перейдите на одну дальше и замените любые «edit TRIES 2» на «edit TRIES 3»:
printf '%s\n' '/task Listen/+1 s/edit TRIES 2/edit TRIES 3/' 'wq' | ed -s file
printf
отправляет две команды, разделенные новой строкой -, ed
(, которому приказано подавить диагностику с помощью-s
):
/task Listen/+1
--на следующем том, который соответствует «задаче Слушать», s/edit TRIES 2/edit TRIES 3/
--заменить любые «редактировать ПОПЫТКИ 2» на «редактировать ПОПЫТКИ 3» Если строка, следующая за «task Listen», не содержит «edit TRIES 2», ed
завершится безуспешно (и не изменит файл ).