распечатать определенную строку из нескольких файлов

У меня есть коллекция из 5000+ файлов, и я просто хочу создать файл output.txt который содержит 27-ю строку всего файла вместе с именем файла. хорошо, что я noob на уровне Linux, так что я получил из Интернета, чтобы выбрать определенную строку из одного файла, используя команды awk или sed как $sed -n 27p *.txt >>output.txt

например, мои файлы в каталоге:

  log_1.txt
 log_2.txt
 log_3.txt
 log_4.txt
 ,
 ,
 ,

Я хочу 27-ю строку каждого файла с именем файла перед или позади печатной строки в новом файле output.txt .

4 Solutions collect form web for “распечатать определенную строку из нескольких файлов”

  awk 'FNR==27 {print FILENAME, $0}' *.txt >output.txt 
  • FILENAME – встроенная переменная awk для текущего имени входного файла
  • FNR ссылается на номер строки текущего файла
  • $0 означает целую строку

Использование цикла for :

 { for i in *.txt; do echo "$i : $(sed -n '27p' "$i")"; done ;} >output.txt 

Цикл for может быть дорогим, так как у вас есть 5000+ файлов, но с учетом текущих аппаратных средств не должно быть проблемой.


Ускоренный способ, покидая sed после строки 27 (спасибо @Fiximan) :

 { for i in *.txt; do echo "$i : $(sed -n '27p;q' "$i")"; done ;} >output.txt 

Другая возможность:

 for i in * ; do echo -n $i" : " ; head -n 27 "$i" | tail -n 1 ; done > output.txt 

Простое использование awk:

 awk 'FNR==27 {print FILENAME,$0}' /path/to/files/log_*.txt > outfile.txt 
  • Использование sed для консолидации разностного вывода
  • array выводит все испорченные?
  • Сортировка нескольких файлов csv на основе двух столбцов в каталоге
  • Самый простой способ найти / заменить в файле с помощью списка?
  • Как сопоставить шаблон и заменить только часть шаблона?
  • Поиск файлов, содержащих несколько ключевых слов в любом месте файла
  • Как «grep» для длины строки * not * в заданном диапазоне?
  • Сопоставьте начало линии с чем-то там?
  • Как получить путь, индекс строки и содержимое строки в оболочке bash?
  • sed + удалить слово из определенной строки
  • Как мне искать файл для строки, а затем использовать его как переменную?
  • Возврат только части строки после соответствующего шаблона
  • Interesting Posts

    Как я могу сравнивать разные файлы, не открывая их?

    В чем разница между прикрепленным и отсоединенным экраном?

    Как я могу отладить проблему Suspend-to-RAM в Linux?

    Как я могу получить вывод `ls -l` для ссылки рекурсивно, пока не достигнут исходный файл?

    Как получить горячую клавишу «дублировать строку» в gedit?

    Движение навигации для пропуска комментариев

    Проверьте, установлена ​​ли папка удаленной файловой системы

    Не удается войти в localhost через SSH, но аутентификация выполнена успешно

    Можно ли запустить команду из bash и отправить ей нажатие клавиши

    Отменить «Без границ» в KDE

    патчи ядра – зная, когда их делать

    Вывести обе строки при изменении столбца

    Почему каналы, поддерживаемые моим интерфейсом, отличаются от каналов, разрешенных для сети ad-hoc?

    Исключение вложенных каталогов с помощью grep

    Удаление пространства в начале переменных данных

    Linux и Unix - лучшая ОС в мире.