Я пишу сценарий bash, и в этом сценарии bash у меня есть строка, подобная этой:
awk '/TextToBeMatched/ { print; print "TextToInsert"; next }1' "/Path/to/specified/file.extension"
И в настоящее время он находит «TextToBeMatched» в указанном файле, а затем заменяет это с "TextToInsert". Но я бы хотел, чтобы вместо того, чтобы затем печатать вывод в сеанс консоли, я хотел бы, чтобы он печатал в файл, я думаю, что я сделал бы это с перенаправлением вывода, так как именно я бы это сделал?
Я читал о перенаправлении вывода с awk
здесь , но это не сильно помогло с моим кодом.
Для сохранения вывода awk
в файл просто используйте перенаправление:
awk > /path/to/output/file ...
, Так как оболочка обрабатывает перенаправление и освобождает выходной файл, Вы не можете использовать тот же файл для обоих вводов и выводов - к тому времени, когда awk добирается до него, файл был бы усеченным оболочкой.
С GNU awk, можно использовать оперативный плагин редактирования для сохранения вывода в тот же файл:
gawk -i inplace ...
Это работает, почти такой же путь sed -i
делает.