2016-05-18 2 views

ответ

1

Опция -f командной строки для awk указывает, что следующий аргумент должен быть файл для чтения команд.

Если опустить -f, интерпретатор попытается вызвать скрипт с помощью /bin/awk yourScriptFile который подведет и т.д .:

$ cat yourScriptFile 
#!/bin/awk 
{ print $1; } 
$ ./yourScriptFile 
awk: cmd. line:1: ./yourScriptFile 
awk: cmd. line:1:^syntax error 
awk: cmd. line:1: ./yourScriptFile 
awk: cmd. line:1: ^unterminated regexp 

Обратитесь к документации POSIX для AWK (http://pubs.opengroup.org/onlinepubs/009695399/utilities/awk.html) или man 1 awk для деталей.

+0

браво .. спасибо дружище .. – abnv

+0

@abnv Примите мой ответ, если он вам поможет. – jotik

1

От AWK man page.

-f progfile 

AWK использует набор шаблонов он считывает из ФАЙЛА.

Это означает, что сценарий должен быть найден в progfile.

1

Цитируя man awk:

-f текст программы файл считывается из файла, а не из командной строки. Разрешены несколько опций -f.

Вот пример:

Предоставление AWK программу, используя -f filename

$ cat script.awk 
{print} 
$ awk -f script.awk <<< "abcd" 
abcd 

или создание AWK исполняемого файла, как это:

$ cat script1.awk 
#!/usr/bin/awk -f 
{print} 
$ ./script1.awk <<< "abcd" 
abcd 
Смежные вопросы