перенаправление вывода на печать awk

Я пишу сценарий bash, и в этом сценарии bash у меня есть строка, подобная этой:

awk '/TextToBeMatched/ { print; print "TextToInsert"; next }1' "/Path/to/specified/file.extension"

И в настоящее время он находит «TextToBeMatched» в указанном файле, а затем заменяет это с "TextToInsert". Но я бы хотел, чтобы вместо того, чтобы затем печатать вывод в сеанс консоли, я хотел бы, чтобы он печатал в файл, я думаю, что я сделал бы это с перенаправлением вывода, так как именно я бы это сделал?

Я читал о перенаправлении вывода с awk здесь , но это не сильно помогло с моим кодом.

0
задан 21 March 2015 в 22:41

1 ответ

Для сохранения вывода awk в файл просто используйте перенаправление:

awk > /path/to/output/file ...

, Так как оболочка обрабатывает перенаправление и освобождает выходной файл, Вы не можете использовать тот же файл для обоих вводов и выводов - к тому времени, когда awk добирается до него, файл был бы усеченным оболочкой.

С GNU awk, можно использовать оперативный плагин редактирования для сохранения вывода в тот же файл:

gawk -i inplace ... 

Это работает, почти такой же путь sed -i делает.

1
ответ дан 21 March 2015 в 22:41

Другие вопросы по тегам:

Похожие вопросы: