Каков наилучший способ вызвать sed по результатам grep и сохранить его в файл? Я хочу изменить некоторые строки в текстовом файле, например.Вызов sed на результаты grep - скрипт/текстовая обработка linux shell
Привет {Tom Mary Andy}
Что {Eric John Ted}
Привет {Jerry Katy Mark}
Так что моя проблема в том, что я хочу добавить, например, буквы Т перед всеми именами, которые заключены между скобками {} в строках, которые являются строками «Hi» и перезаписывают файл. Результаты должно выглядеть так:
Привет {T.Tom T.Mary T.Andy}
Что {Eric John Ted}
Привет {T.Jerry T.Katy T.Mark}
Как вы думаете, а лучшее решение/команды? Я собираюсь написать сценарий оболочки для этого. Я знаю, что я могу grep, что линии, позже изменить его на массив и concat, но я не думаю, что это хорошее решение :) Спасибо за вашу помощь.
В общем, нет необходимости в этом: 'sed' может выполнять всю работу, которая сама' grep' может (и 'awk' еще более гибкая, чем любая). Если вы указали строку 'grep', мы можем показать вам, как ее свернуть в' sed' (или реализовать желаемую логику как изначально в 'awk'). –
... если вы не возражаете против какой-либо дополнительной многословности, все это можно сделать изначально в bash (без внешних инструментов - без 'sed',' grep' или 'awk'). –
Теперь я подсчитываю количество вхождений, создаю для цикла в этом диапазоне. На каждой итерации я сохраняю результаты grep, которые возвращают текущий вид, удаляют скобки и команду Hi, изменяют строковую переменную на массив и делают цикл для добавления в начале каждого слова буквой T. В конце я обмениваюсь линией строки «Привет» с моей новой измененной линией Hi. – TheOmniano