Для передачи файлов в awk
мы можем использовать оболочку globstar. -F
может использоваться для определения разделителя полей, поэтому -F '|'
- это то, что нам нужно. И чтобы получить только первую строку, достаточно использовать nextfile
. Таким образом, мы можем сделать:
awk -F'|' '{print FILENAME,$8;nextfile}' ./*
из папки, в которой находятся файлы.
Следует отметить, что nextfile
может не поддерживаться. Например, как заметил Стефан, Debian и его производные поставляются со старой версией mawk
, в которой нет опции nextfile
. В случае, когда вам нужно иметь более переносимый код awk, вы можете воспользоваться переменной FNR
. Например:
awk -F'|' 'FNR==1{print FILENAME,$8}' ./*