Сценарий, который у вас есть, является почти правильным, но вам не нужно выражение BEGIN
при использовании его в качестве сценария.Поскольку любые действия, включенные в предложение BEGIN
, выполняются до обработки любой из строк ввода.Например, рассмотрим случай, когда вам нужно было напечатать заголовок для выходных данных, вы можете просто напечатать его как
BEGIN { print "my-title-string-in-double quotes" }
Запись его одной или несколькими строками - это вопрос стиля и того, как вы выглядитеаккуратный и хорошо читаемый.Поэтому все, что вам нужно сделать сейчас, это определить awk
сценарий с содержимым как
#!/usr/bin/awk -f
$2 == 0 && $3 == 2 { print $7}
$2 == 0 && $3 == 4 { print $7}
$2 == 0 && $3 == 5 { print $7}
$2 == 2 && $3 == 2 { print $7}
$2 == 2 && $3 == 4 { print $7}
$2 == 2 && $3 == 5 { print $7}
$2 == 3 && $3 == 2 { print $7}
$2 == 3 && $3 == 4 { print $7}
$2 == 3 && $3 == 5 { print $7}
$1 == "achil" { print $3}
Добавить разрешения на выполнение для него
chmod +x script.awk
и запустить его как
awk -f script.awk input-file
Но, тем не менее, ваши условия вполне могут быть записаны с использованием операторов сопоставления с шаблоном как
$2 ~ /^(0|2|3)$/ && $3 ~ /^(2|4|5)$/ { print $7; next } $1 == "achil" { print $3 }