Если вы хотите сделать это с помощью awk
, только это может привести вас в правильном направлении:
for f in *.log; do awk 'NR==1{ first_line=$0 } END { last_line=$0; print( last_line ~ /varnished/) ? "File: " FILENAME "\n" first_line : "" }' "$f"; done
Цикл for, вероятно, не обязателен, но это самый эффективный способ, который я смог найти с помощью awk
И благодаря комментариям ниже, теперь мы можем позволить gawk
сделать свою работу следующим образом:
gawk 'FNR==1 {first = $0} ENDFILE {if($0 ~ /varnished/) print substr(FILENAME,3) ":", first}'./*.log
В последних системах Linux awk
является символической ссылкой на gawk
. Например, в последних выпусках Fedora дело обстоит именно так :
# ls -l /bin/awk
lrwxrwxrwx. 1 root root 4 Jul 13 07:55 /bin/awk -> gawk
Я решил! В файле make добавьте:
FLEX_PATH := $(shell dirname $(shell which flex))
LIB_PATH := $(shell readlink -f "$(FLEX_PATH)/../lib")
clang... -L $(LIB_PATH) -lfl...