Вы действительно не говорите, какую ОС (и оболочку) вы используете. Возможно, вы захотите пометить свой вопрос, чтобы помочь нам.
Поскольку вы упоминаете cat | ...
, я предполагаю, что вы используете вариант Unix / Linux, поэтому вот несколько советов для просмотра файлов. (решение bmargulies тоже хорошо).
Я ищу какой-нибудь скрипт или программу, использующую ключевые слова или поиск по шаблону в файлах
grep
- базовая программа для поиска файлов по текстовым строкам. Его использование
grep [-options] 'search target' file1 file2 .... filen
(Обратите внимание, что 'target для поиска' содержит пробел, если вы не окружите пробелы в searchTarget двойными или одинарными кавычками, у вас будет небольшая ошибка для отладки.)
(Также обратите внимание, что «цель поиска» может использовать широкий спектр символов подстановки, например.,?, +, ,. и многие другие, что выходит за рамки вашего вопроса ). ... в любом случае ...
Как я полагаю, вы обнаружили, что вы можете втиснуть в командную строку одновременно только столько файлов, даже при использовании расширения имени файла с подстановочными знаками. Unix / linux почти всегда имеет утилиту, которая может помочь с этим,
startDir=/home
find ${startDir} -print | xargs grep -l 'Search Target'
Это, как один человек будет рад напомнить вам, потребует дополнительных улучшений, если ваши имена файлов содержат пробельные символы или символы новой строки.
Опции, доступные для grep, могут сильно различаться в зависимости от используемой ОС. Если вам повезет, введите следующее, чтобы получить справочную страницу для вашего местного grep.
man grep
Если у вас нет настроек буфера страницы для большого размера, вам может потребоваться сделать
man grep | page
чтобы вы могли видеть верхнюю часть «документа». Нажмите любую клавишу, чтобы перейти на следующую страницу, и когда вы окажетесь в конце документа, последнее нажатие клавиши вернет вас в командную строку.
Некоторые опции, которые есть у большинства greps, могут быть вам полезны:
-i (ignore case)
-l (list filenames only (where txt is found)
Существует также fgrep, который обычно интерпретируется как «file» grep
потому что вы можете дать ему файл целей поиска для поиска, который используется как
fgrep [-other_options] -f srchTargetsFile file1 file2 ... filen
Мне нужен этот скрипт для поиска поддельных сайтов (PayPal, Ebay и т. Д.)
Окончательное решение
вы можете сделать srchFile как
paypal.fake.com
ebay.fake.com
etc.fake.com
и затем в сочетании с вышеприведенным запустите следующее
startDir=/home
find ${startDir} -print | xargs fgrep -il -f srchFile
Некоторые команды greps требуют, чтобы -fsrchFile
запускались вместе.
Теперь вы находите все файлы, начиная с / home, выполняя поиск с помощью fgrep для paypay, ebay и т. Д. Во всех файлах. -L говорит, что он напечатает ТОЛЬКО имя файла, где найдено совпадение. Вы можете удалить -l, а затем вы увидите вывод того, что найдено, с добавлением имени файла.
IHTH.