Поиск строк в файлах и представление четырех строк контекста (совпадение и три следующих)

У меня есть строка (или список строк), которая / должна быть найдена во всех файлах каталога. Например, если я ищу ABC, а file1.txt содержит ABC в строке 6, то мне нужны строки 6, 7, 8 и 9 из этого файла. Я хочу, чтобы весь такой вывод переходил к новому выходному файлу.

3 Solutions collect form web for “Поиск строк в файлах и представление четырех строк контекста (совпадение и три следующих)”

Возможно, это подходит. Использует параметр grep -A (после контекста) для вывода соответствующей строки и трех последующих строк.

 find . -name file\* -exec grep -A 3 ABC {} \; > result-filename 

ПРИМЕЧАНИЕ. Вы не должны result-filename directoryname . (См .: grep: входной файл «X» также является выходным ).

Чтобы охватить несколько шаблонов:

 find . -name file\* -exec egrep -A 3 'ABC|XYZ' {} \; > result-filename 

Или несколько шаблонов из файла (спасибо Евгению Верещагину):

 find . -name file\* -exec grep -A 3 -f patterns.txt {} \; > result-filename 

Следующее выполнит поиск всех неточечных файлов в текущем каталоге:

 sed '/string/{ $!N;$!N;$!N;$!N w ./new_out_file }' ./* 

Чтобы выполнить несколько совпадений с фреймами с grep -A без find и без имен файлов, добавленных к каждому совпадению, вам просто нужен только один поток.

 cat ./* | grep -A2 -Ff pattern_file >outfile 

Я получил решение для этого:

 grep -A 2 -f 'INPUT.txt' *.* >> RESULT.txt 
  • Количество вхождений в текстовом файле, где первый символ после 12-го канала равен 1?
  • sed удалять пространство
  • Перенести первые N строк вывода в конец без использования временного файла
  • Как заменить все вкладки в каждом файле в ветке файловой системы на 2 пробела?
  • Unix - поиск имен с egrep
  • BASH получает значение из строки
  • Замените строку без учета регистра во всех файлах папок
  • Показать символ в позиции в файле
  • Вставить строку или строку после последнего экземпляра определенной переменной поиска в цикле
  • распечатать, если следующая строка содержит
  • Удалить определенные номера строк (переданные как переменные) из файла в linux
  • Как написать данные отдельно во многих текстовых файлах, содержащих одни и те же поля?
  • Interesting Posts

    Каковы пространственные издержки для разных файловых систем?

    Сапоги Fedora 24 для чтения

    Как очистить загрузчики и записи UEFI от других установок?

    Ping не работает, но я могу просматривать интернет

    Что да (да, да)?

    текущий фиксированный трек в строке состояния dwm

    Что-то переименовывает php-файлы в .php.suspected; Я пытаюсь выяснить, что

    Как найти UID, GID и любые группы, к которым я принадлежу?

    Клавиатура не работает, когда требуется ввести пароль для зашифрованного корня

    Пусть ifconfig ждет, пока IPv6-адрес не будет ориентировочным

    Ошибка «Невозможно назначить запрошенный адрес» при передаче на удаленный сервер

    Как назвать объем в Linux, чтобы я мог распознавать каждый том в файловой системе?

    Ошибка при запуске скрипта PL / SQL

    Создайте каталог, используя имена файлов, и переместите файлы в соответствующую папку

    Могу ли я просто отключить updateb?

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