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

У меня есть коллекция из 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 .

  • добавьте «#» в начале выбранных строк в файле
  • Проблема удаления / замены специального символа °
  • Использование sed для консолидации разностного вывода
  • Как удалить несколько строк в каждом вхождении в файл?
  • Grep точное количество цифр и некоторые другие символы
  • Скопируйте первые 2 строки из файла, а затем удалите строки
  • Удалить строку, если два шаблона найдены в одной строке
  • Возврат только части строки после соответствующего шаблона
  • 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 
    Interesting Posts

    Как отключить выгрузку контрольной суммы tcp на OSX 10.11.6?

    Почему мое условие всегда ложно?

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

    Есть ли файловая система, которая позволяет мне вставить некоторый блок в середине файла в O (1)?

    переменная sed в запросе?

    Можно ли использовать клавиатуру вместо мыши для подключения Wi-Fi в Fedora 26?

    SMBFS Mount внезапно перестала работать. Ошибка CIFS

    Инициализация переменной с помощью эха

    Как остановить Gthumb от открытия, когда я подключу камеру?

    Где подходящее место для развертывания веб-приложений?

    apache_user Пользователь 0

    Можно ли «перевернуть» символическую ссылку на новый файл, не затрагивая никаких открытых дескрипторов файлов?

    USB Audio обнаружен ALSA, но не JACK?

    Как получить доступ к http-серверу из сценария bash с существующим подключением tcp?

    Как узнать, какие порты прослушиваются определенным PID?

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