web-dev-qa-db-ja.com

Linux:検索を使用してテキストファイルを検索しますか?

findにテキストファイルのみ(バイナリファイルではない)を指定する方法はありますか? Grepにはバイナリファイルを除外するオプションがあるので、findにも同様の機能があると思いましたが、見つかりませんでした。

4
Peltier

これは、grepがファイルの内容を確認するためです。

find . -exec sh -c "file -b --mime-type {} | grep -q '^text/'" \; -print

findはメタデータでファイルを見つけることができますが、内容を確認することはできません。ただし、fileと組み合わせることができます。

find .git -type f -exec file -iN0 {} + |
awk -F '\0' '$2 ~ /^: text\// {print $1}'

(より詳細な情報が必要な場合は、| awk ...部分を削除できます。)

4
user1686