Хотите найти строку во всех подкаталогах папки
Предположим, я в папке
/data/
Данные папки содержат еще 10 папок.
/data/temp1
/data/temp2
/data/temp3
and so on
все из которых имеют файлы .gz, т.е. temp1, temp2, temp3 до temp10, все они содержат файлы .gz. Я хочу иметь возможность найти определенную строку, предположим, ОШИБКА: во ВСЕХ файлах, расположенных во всех 10 каталогах.
Есть ли команда, которая может помочь мне это сделать?
1 ответ
Базовая команда поиска должна делать:
# find /data -name "*.gz" -exec zgrep "ERROR" {} \;
Существует несколько альтернативных (и, возможно, более эффективных) способов его форматирования, например, с помощьюxargs
, но это сработает, по крайней мере, в той степени, в которой задан ваш вопрос.