AWK прост в использовании. Мы можем предоставить команды AWK либо непосредственно из командной строки, либо в виде текстового файла, содержащего команды AWK.
Командная строка AWK
Мы можем указать команду AWK в одинарных кавычках в командной строке, как показано ниже:
awk [options] file ...
пример
Рассмотрим текстовый файл marks.txt со следующим содержанием —
1) Amit Physics 80 2) Rahul Maths 90 3) Shyam Biology 87 4) Kedar English 85 5) Hari History 89
Давайте отобразим полное содержимое файла, используя AWK, следующим образом:
пример
[jerry]$ awk '{print}' marks.txt
Выполнив этот код, вы получите следующий результат —
Выход
1) Amit Physics 80 2) Rahul Maths 90 3) Shyam Biology 87 4) Kedar English 85 5) Hari History 89
Файл программы AWK
Мы можем предоставить команды AWK в файле сценария, как показано ниже:
awk [options] -f file ....
Сначала создайте текстовый файл command.awk, содержащий команду AWK, как показано ниже —
{print}
Теперь мы можем дать команду AWK прочитать команды из текстового файла и выполнить действие. Здесь мы достигаем того же результата, что и в приведенном выше примере.
пример
[jerry]$ awk -f command.awk marks.txt
Выполнив этот код, вы получите следующий результат —
Выход
1) Amit Physics 80 2) Rahul Maths 90 3) Shyam Biology 87 4) Kedar English 85 5) Hari History 89
AWK Стандартные Опции
AWK поддерживает следующие стандартные параметры, которые могут быть предоставлены из командной строки.
Опция -v
Эта опция присваивает значение переменной. Это позволяет присваивать перед выполнением программы. В следующем примере описано использование параметра -v.
пример
[jerry]$ awk -v name=Jerry 'BEGIN{printf "Name = %s\n", name}'
Выполнив этот код, вы получите следующий результат —
Выход
Name = Jerry
Опция —dump-variable [= file]
Он печатает отсортированный список глобальных переменных и их окончательных значений в файл. Файл по умолчанию — awkvars.out .
пример
[jerry]$ awk --dump-variables '' [jerry]$ cat awkvars.out
Выполнив приведенный выше код, вы получите следующий результат —
Выход
ARGC: 1 ARGIND: 0 ARGV: array, 1 elements BINMODE: 0 CONVFMT: "%.6g" ERRNO: "" FIELDWIDTHS: "" FILENAME: "" FNR: 0 FPAT: "[^[:space:]]+" FS: " " IGNORECASE: 0 LINT: 0 NF: 0 NR: 0 OFMT: "%.6g" OFS: " " ORS: "\n" RLENGTH: 0 RS: "\n" RSTART: 0 RT: "" SUBSEP: "\034" TEXTDOMAIN: "messages"
Опция —help
Эта опция выводит справочное сообщение на стандартный вывод.
пример
[jerry]$ awk --help
Выполнив этот код, вы получите следующий результат —
Выход
Usage: awk [POSIX or GNU style options] -f progfile [--] file ... Usage: awk [POSIX or GNU style options] [--] 'program' file ... POSIX options : GNU long options: (standard) -f progfile --file=progfile -F fs --field-separator=fs -v var=val --assign=var=val Short options : GNU long options: (extensions) -b --characters-as-bytes -c --traditional -C --copyright -d[file] --dump-variables[=file] -e 'program-text' --source='program-text' -E file --exec=file -g --gen-pot -h --help -L [fatal] --lint[=fatal] -n --non-decimal-data -N --use-lc-numeric -O --optimize -p[file] --profile[=file] -P --posix -r --re-interval -S --sandbox -t --lint-old -V --version
Опция —lint [= fatal]
Эта опция позволяет проверять непереносимые или сомнительные конструкции. Когда указан фатальный аргумент, предупреждающие сообщения рассматриваются как ошибки. Следующий пример демонстрирует это —
пример
[jerry]$ awk --lint '' /bin/ls
Выполнив этот код, вы получите следующий результат —
Выход
awk: cmd. line:1: warning: empty program text on command line awk: cmd. line:1: warning: source file does not end in newline awk: warning: no program text at all!
Опция —posix
Эта опция включает строгую совместимость с POSIX, в которой отключены все общие и специфичные для gawk расширения.
Опция —profile [= file]
Эта опция генерирует печатную версию программы в файле. Файл по умолчанию — awkprof.out . Ниже простой пример иллюстрирует это —
пример
[jerry]$ awk --profile 'BEGIN{printf"---|Header|--\n"} {print} END{printf"---|Footer|---\n"}' marks.txt > /dev/null [jerry]$ cat awkprof.out
Выполнив этот код, вы получите следующий результат —
Выход
# gawk profile, created Sun Oct 26 19:50:48 2014 # BEGIN block(s) BEGIN { printf "---|Header|--\n" } # Rule(s) { print $0 } # END block(s) END { printf "---|Footer|---\n" }
Опция —traditional
Эта опция отключает все специфичные для gawk расширения.
Опция —version
Эта опция отображает информацию о версии программы AWK.
пример
[jerry]$ awk --version
Когда этот код выполняется, он дает следующий результат —
Выход