Linux - командная строка - Как извлечь SMT из скрытого файла внутри каталога всех каталогов - PullRequest
0 голосов
/ 02 апреля 2020

Я нахожусь в каталоге, который имеет, скажем, 100 каталогов (и ничего больше), и у каждого из них есть еще 50 каталогов (и ничего больше), и у каждого каталога (из 50) есть некоторые скрытые файлы. Все 50 папок имеют одинаковое имя для скрытого файла. Как я могу что-то найти в скрытом файле?

Пример

grep "Killed" .log 

(файл .log находится внутри каждого из 50 каталогов; но я нахожусь в root из 100 dirs)

Спасибо большое! Electra

Ответы [ 2 ]

0 голосов
/ 02 апреля 2020

Вопрос немного двусмысленный. У вас есть несколько «скрытых» файлов, и вы хотите искать только строку в файлах с определенным именем, или вы хотите искать строку во всех файлах? В любом случае, это довольно тривиально:

find /root/dir -type f -exec grep pattern {} \;  # Search all files
find /root/dir -type f -name '*.log' -exec grep pattern {} \; # Search only in files with names matching '*.log'

Вы часто захотите добавить -H (или указать / dev / null в качестве второго аргумента) к вызову grep, чтобы увидеть имена файлов.

0 голосов
/ 02 апреля 2020

Использование GNU grep:

grep -r --include=.log 'Killed'

Запускает рекурсив grep в вашем текущем каталоге, включая только файлы, соответствующие имени .log.

...