-1

Как получить список имен файлов, у которых последняя строка (или строка в позиции X) соответствует определенному шаблону?

Мы ищем oneliner.

1 ответ1

1
awk '/pattern/ {last_matching_line = FNR} (FNR != NR && FNR==1) {if (last_FNR == last_matching_line) {print last_filename}} {last_FNR = FNR; last_filename = FILENAME} END {if (FNR == last_matching_line) {print FILENAME}}' file1 file2...
  • Сначала сохраните last_matching_line по FNR .
  • Затем проверьте, является ли это последней строкой, проверив, обрабатывает ли awk другой файл (FNR==1) или обрабатывает последний файл (END).
  • В любом из этих двух случаев выведите FILENAME .

Для строки по вопросу позиции X это проще, потому что есть только один случай для проверки: FNR == X

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .