Как добавить скрипт awk в файл? - PullRequest
0 голосов
/ 12 января 2020

Здравствуйте, у меня есть следующий скрипт awk:

#!/bin/awk -f 

{for(i=4;i<=7;i++) j+=$i;  print "Student",NR",",$1,$2",",j/4; j=0} 

, и я хочу добавить вывод в новый файл (newfile.txt).

Ответы [ 2 ]

0 голосов
/ 12 января 2020

Не используйте shebang для вызова awk из сценария оболочки, так как он лишает вас возможности разделять ваши функции по тому, что каждый (оболочка или awk) делает лучше всего. Сделайте так, чтобы ваш скрипт оболочки выглядел так (используя любую оболочку, которую вы используете для shebang):

#!/bin/env bash

awk '
{for(i=4;i<=7;i++) j+=$i;  print "Student",NR",",$1,$2",",j/4; j=0}
' "$@" >> newfile.txt
0 голосов
/ 12 января 2020

Не могли бы вы попробовать следующее. Где упоминается выходной файл внутри awk самого кода.

{for(i=4;i<=7;i++) j+=$i;  print "Student" OFS NR",",$1,$2"," OFS j/4 >> (output_file); j=0}


ИЛИ Второй способ - это когда вы запускаете свой код awk, где script - это имя скрипта, который вы вызываете например, для запуска вашей awk-программы ->

./script >> output_file


Если вы хотите запустить однострочную строку awk, чтобы получить вывод в выходной файл, попробуйте выполнить следующее.

awk -v output_file="Output.txt" '{for(i=4;i<=7;i++) j+=$i;  print "Student" OFS NR",",$1,$2"," OFS j/4 >> (output_file); j=0}' Input_file 

В приведенном выше коде я создал переменную с именем output_file, значение которой вы можете сохранить в соответствии с вашим * wi sh.

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