вывод awk в файл - PullRequest
       15

вывод awk в файл

1 голос
/ 17 марта 2010

Мне нужна помощь в перемещении содержимого, напечатанного awk, в текстовый файл. Это продолжение предыдущего вопроса Я должен переместить все содержимое в один файл, чтобы он добавлялся.

Чтобы быть конкретным

nawk -v file="$FILE" 'BEGIN{RS=";"}
  /select/{ gsub(/.*select/,"select");gsub(/\n+/,"");print file,$0;}
  /update/{ gsub(/.*update/,"update");gsub(/\n+/,"");print file,$0;}
  /insert/{ gsub(/.*insert/,"insert");gsub(/\n+/,"");print file,$0;}
  ' "$FILE"

Как получить результаты печати в текстовом файле, добавленном один за другим в тот же файл?

Ответы [ 3 ]

4 голосов
/ 17 марта 2010

Перенаправление ввода / вывода довольно простое при работе с оболочкой. Если вы хотите добавить строки, используйте >>. например,

nawk -v file="$FILE" 'BEGIN{RS=";"}
  /select/{ gsub(/.*select/,"select");gsub(/\n+/,"");print file,$0;}
  /update/{ gsub(/.*update/,"update");gsub(/\n+/,"");print file,$0;}
  /insert/{ gsub(/.*insert/,"insert");gsub(/\n+/,"");print file,$0;}
  ' "$FILE"  >> newfile

пожалуйста, потратьте время на чтение сценариев оболочки, если вы еще этого не сделали.

3 голосов
/ 17 марта 2010

Извините, не так много положительного эффекта от awk, но разве оболочка не справится с этим?

awk YOUR_AWK_STUFF_HERE >> appended.file.name
2 голосов
/ 17 марта 2010

Другие ответы предполагают перенаправление оболочки. На самом деле, awk разрешает перенаправление как часть оператора print.

nawk -v file="$FILE" 'BEGIN{RS=";"}
      /select/{ gsub(/.*select/,"select");gsub(/\n+/,"");print file,$0 >> results.txt;}
      /update/{ gsub(/.*update/,"update");gsub(/\n+/,"");print file,$0 >> results.txt;}
      /insert/{ gsub(/.*insert/,"insert");gsub(/\n+/,"");print file,$0 >> results.txt;}
      ' "$FILE"

Из awk справочной страницы :

Оператор print печатает свой аргументы на стандартный вывод (или в файле, если> файл или >> файл присутствует или на трубе, если | cmd настоящее время), разделенных текущим разделитель выходного поля и завершается разделителем выходных записей. файл и cmd может быть буквальными именами или выражения в скобках; идентичный строковые значения в разных операторах обозначить тот же открытый файл.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...