ファイルを「バイナリ」または「テキスト」に分類する便利な方法はありますか?

ファイルを「バイナリ」または「テキスト」に分類する便利な方法はありますか?

grepなどの標準のUnixユーティリティは、diffいくつかの経験的な方法を使用してファイルを「テキスト」または「バイナリ」に分類します。 (たとえば、grep出力には次の行を含めることができますBinary file frobozz matches。)

zsh同様の「テキスト/バイナリ」分類を実行するためにスクリプトに適用できる便利なテストはありますか? (そういうものを除いてgrep '' somefile | grep -q Binary。)

(私はそのようなテストが必然的に経験的であるため不完全であることを知っています。)

ベストアンサー1

file要求だけ無言のタイプtext/x-shellscriptなど様々な内容が出てきますがapplication/x-executable、「text」部分だけを確認するとかなり良い結果が得られそうです。たとえば(-b出力にファイル名がありません):

file -b --mime-type filename | sed 's|/.*||'

おすすめ記事