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

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

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

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

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

  • Печатать строки, если шаблон не сопоставляется
  • Удалите строки, которые не начинаются с шаблона из заданного набора паттернов
  • Как я могу исключить тип файла * .sql типа файла ack-grep или размер файла больше> 3 МБ?
  • сравнение 2 списков с дополнительными данными для печати
  • Глобус не работает в zsh, но работает в bash
  • Как искать и заменять текст во всех php-файлах в каталоге и в его подкаталогах
  • Как grep строки, основанные на '.' (точка)?
  • мы можем получить отсортированный выход 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 .

    Interesting Posts

    Подключиться к LDAP с помощью cn = config в Debian Squeeze

    Как настроить систему RAID с помощью USB-накопителей в качестве носителя

    Как сделать портативную вспышку Kali? НЕ ЖИТЬ

    Заголовок запроса для Cache-Control не работает

    Сценарий оболочки для уведомления BackupPC не работает

    Как удалить пакет, созданный из источника с тем же именем другого пакета?

    Вызов sed для замены строки, хранящейся в переменной bash

    mongodb service не запускается, что такое pid for mongodb по умолчанию?

    Для скобок цикла – синтаксис типа C

    не удалось установить удаленное соединение imap, почему бы и нет?

    В чем разница между `dd`,` cp` и `rsync`?

    Найти владельца захватчика X.org

    dpkg: ошибка: 2 ожидаемые программы, не найденные в PATH или не исполняемые, не могут установить ничего

    Есть ли версия скрипта, которая отлично сочетается с vim?

    Запуск xterm удаленно с помощью ssh -Y, не соответствует настройке раскраски, установленной в .Xresources

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