Grep только текстовые файлы find . -type f | xargs file | grep text | cut -d':' -f1 | xargs grep -l "TEXTSEARCH" {} Это хорошее решение? для поиска TEXTSEARCH рекурсивно только в текстовых файлах Ответ 1 Вы можете использовать опции -r (рекурсивный) и -I (игнорировать двоичные) в grep: $ grep -rI "TEXTSEARCH" . -I Обработать двоичный файл, как если бы он не содержал соответствующие данные; это эквивалентно опции --binary-files=without-match. -r Чтение всех файлов в каждом каталоге, рекурсивно; это эквивалентно опции -d recurse. Ответ 2 Другим, менее элегантным решением, чем kevs, является цепочка -exec команды в поиске вместе без xargs и cut: find . -type f -exec bash -c "file -bi {} | grep -q text" \; -exec grep TEXTSEARCH {} ";"
Ответ 1 Вы можете использовать опции -r (рекурсивный) и -I (игнорировать двоичные) в grep: $ grep -rI "TEXTSEARCH" . -I Обработать двоичный файл, как если бы он не содержал соответствующие данные; это эквивалентно опции --binary-files=without-match. -r Чтение всех файлов в каждом каталоге, рекурсивно; это эквивалентно опции -d recurse.
Ответ 2 Другим, менее элегантным решением, чем kevs, является цепочка -exec команды в поиске вместе без xargs и cut: find . -type f -exec bash -c "file -bi {} | grep -q text" \; -exec grep TEXTSEARCH {} ";"