grep seach pattern из файла, содержащего список шаблонов, запись результата каждого шаблона в indivdual файлы

У меня есть каталог, содержащий ежедневные компакт-диски за месяц. Мне нужно найти все компакт-диски для списка ph-номеров и записать результат в отдельные файлы для каждого шаблона

В настоящее время я использую следующую команду вручную для каждого номера ph в каталоге, содержащем месячные компакт-диски, и записывая результат каждого номера в отдельный файл.

grep -rn 111222333 /dir-containing-new-indivdual-logs/111222333.csv 

Я попытался добавить параметр grep -f чтобы указать список поиска, но не повезло, поскольку мой синтаксис для всего CMD явно неправильный.

  • Перенаправить вывод ошибки grep в файл
  • Возьмите grep значение и выведите количество и значение вместе
  • Заменить «-из» на «это» в начале строки
  • выполнение нескольких greps в одной команде find
  • Ошибка или функция? Grep принимает файлы как флаги
  • Как запустить grep в файлах epub / mobi?
  • Точное числовое совпадение Grep
  • Как искать ссылки на строки в указанном месте?
  • 2 Solutions collect form web for “grep seach pattern из файла, содержащего список шаблонов, запись результата каждого шаблона в indivdual файлы”

    Если вы предпочитаете оставаться с grep, рассмотрите этот цикл

     nums=/path/to/the/file_with_numbers_one_per_line wdir=/path/to/dir/where/records2searchIn/located rdir=/path/to/dir/to/put/results for anum in $(cat ${nums}); do grep -nr "${anum}" ${wdir} > ${rdir}/result_file_for_${anum}; done , nums=/path/to/the/file_with_numbers_one_per_line wdir=/path/to/dir/where/records2searchIn/located rdir=/path/to/dir/to/put/results for anum in $(cat ${nums}); do grep -nr "${anum}" ${wdir} > ${rdir}/result_file_for_${anum}; done 

    который делает grepping для каждого числа в списке и сохраняет отдельные результаты

    Используйте awk для этого.

     awk 'NR==FNR{ptrns[$0]++;next} FILENAME!="ptrns_list"{for(x in ptrns) if($0 ~ x) print $0>x}' ptrns_list infiles*.csv 

    Сначала прочитайте все шаблоны в массиве, из которого они находятся в файле ptrns_list . Затем для каждого .csv-файла, если во всей строке $0 один из этих шаблонов видел $0 ~ x напечатайте эту строку в отдельный файл с тем же именем, что и шаблон.

    Просто передайте свой файл списка фактических файлов поиска с помощью ptrns_list и ptrns_list .csv файлы с infiles*.csv в ptrns_list infiles*.csv .

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