Вы сможете делать и другие вещи во время выполнения [114387]ls[114388]. При первом нажатии клавиши enter после завершения работы [114389]ls[114390] Вы получите сообщение типа:
Все выходные данные теперь будут в файле [114391]ls_files[114392].[113927].
Если вы сделаете:
awk -v benchmark=30 '...'
Это то же самое, что:
awk 'BEGIN{ benchmark = 30 } ... '
Это используется для установки начального значения для этой переменной.
Хотя я не понимаю, почему автор делает:
benchmark=30; ... | awk -v benchmark=$benchmark ..
Они также могут делать:
... | awk -v benchmark=30 ..
Путаница может быть вызвана тем фактом, что исходный автор использовал то же имя переменной для оболочки:
benchmark=30;gr...
как он / она сделал внутри awk
:
awk -vbenchmark=$benchmark
который может или не может присвоить значение переменной оболочки эталонного теста
для awk
переменная эталонный тест
.
Как только awk
имеет это значение (в данном случае 30
), awk
проверяет, что шестой столбец вашего входного файла wk.txt
больше, чем это значение:
$6 > benchmark
Тест, используя ваш пример, представляет собой сравнение строк:
for > 30
, которое, хотя и разрешено, на самом деле не имеет большого смысла. Входной файл примера является подлинным примером или просто случайным тестом?
Это оценивается как истина, поэтому awk
выводит всю строку в wc -l
, который считает количество строк. Поскольку у вас есть только одна строка во входном файле, количество строк, в которых шестой столбец больше 30, составляет 1
.
Это значение присваивается переменной оболочки b
.