find
にテキストファイルのみ(バイナリファイルではない)を指定する方法はありますか? Grep
にはバイナリファイルを除外するオプションがあるので、find
にも同様の機能があると思いましたが、見つかりませんでした。
これは、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 ...
部分を削除できます。)