Perlを使用してファイルがバイナリかテキストであるかを確認するbashスクリプトは何ですか?

Perlを使用してファイルがバイナリかテキストであるかを確認するbashスクリプトは何ですか?

誰かがこのbashスクリプトフラグメントがどのように機能するかを説明できますか?

is_text_file() { 
    perl -e 'exit((-B $ARGV[0])?1:0);' "$1"
}

ありがとうございます。

ベストアンサー1

Perlには、最初の引数で呼び出されるファイルタイプのテスト演算子があります。次に、三項演算子を使用してTrue / Falseをシェルステータス0(isTxt)または1(not)に変換します。この関数には明示的な戻り値がないため、perl コマンド自体の状態を返します。 Bash自体はここではほとんど何もしません。

-T  File is an ASCII or UTF-8 text file (heuristic guess).
-B  File is a "binary" file (opposite of -T).

「推測」という言葉に注意を払ってください。

おすすめ記事