используйте cat и grep, чтобы найти кучу файлов и дать мне информацию, сохранив при этом имя файла - PullRequest
0 голосов
/ 03 апреля 2012

, поэтому я запускаю следующую команду cat / Пользователи / sars / logs / testlogs / 2012-04-02 * / * / top | grep -H "httpd"

Я использую *, потому что есть куча каталогов (на самом деле это информация, которую я ищу), и ищу фразу httpd в верхнем выводе

Но когда я делаю это, я получаю (стандартный ввод): 4951 root 1 96 0 14052K 6844K select 2 0:12 0.00% httpd
вместо имени файла

как пройти через эти каталоги, посмотрите в верхнем файле и найдите строки с httpd в них, сохраняя имя и путь к файлу, в котором он находится?

Ответы [ 2 ]

0 голосов
/ 05 апреля 2012

ack - хороший инструмент для такого рода вещей, но он нестандартный. Чтобы сделать это с помощью grep, вы, вероятно, захотите использовать find:

find /Users/sars/logs/testlogs -type f \
    -wholename '/Users/sars/logs/testlogs/2012-04-02*/*/top/*' \
    -exec grep -H httpd {} \;
0 голосов
/ 03 апреля 2012

grep может принимать имена файлов в качестве аргументов:

grep -H "httpd" /Users/sars/logs/testlogs/2012-04-02*/*/top
...