Получение строк из файлов с определенным расширением

Я пытаюсь получить пару конкретных строк из файлов с определенным расширением (.pvc). Эти файлы хранятся в разных каталогах. Затем я хочу поместить все строки в один файл txt.

например.

directory1/file_a.pvc directory2/file_b.pvc . . directory100/file_x.pvc 

Я пытаюсь использовать следующий цикл, но он не работает.

 for i in {1..5} do echo $i cd /home/directory"$i" grep -e L1 -e L2 /*.pvc > /home/all_lines.txt done 

2 Solutions collect form web for “Получение строк из файлов с определенным расширением”

Проводка ответа по запросу:

 grep -h 'L1|L2' ~/directory{1..5}/*.pvc >~/all_lines.txt 

-h сообщает grep не печатать имена файлов, L1|L2 ищет строки L1 и L2 , а directory{1..5} расширяется до directory1 , …, directory5 .

Являются ли они все подкаталоги внутри определенного каталога (father_directory)?

Можешь попробовать:

 find /father_directory -iname '*pvc' -exec grep -e L1 -e L2 {} \; > /home/all_lines.txt 

или, как предложил @Philippos (спасибо):

 grep -r /father_directory -e L1 -e L2 --include "*.pvc" > /home/all_lines.txt 
  • Функция второго grep в `ps | grep -v | grep`
  • grep: gcov-tool.1.gz: Нет такого файла или каталога
  • Отображать строки между текстом с помощью grep
  • Найдите количество всех типизированных команд, которые содержат строку, используя grep
  • Команда, чтобы увидеть, находится ли слово в списке файлов и выводит, сколько файлов оно находится в
  • Grep с диапазоном и пропускает три фильтра
  • Извлечь строки, которые имеют конкретное окончание, и использовать их для извлечения из другого файла
  • Grep не соответствует символам возврата каретки
  • grep -f patternfile не находит ничего или слишком сильно в зависимости от содержимого шаблона
  • "Egrep: empty (sub) expression" при попытке отфильтровать слова из списка
  • Поиск строки в файлах в текущем каталоге, опустить дубликаты
  • Мне нужно извлечь IP-адрес и путь к файлу из отчета Nessus, используя текстовый обработчик
  • Linux и Unix - лучшая ОС в мире.