特定のファイル形式のテスト

特定のファイル形式のテスト

フォローアップです。正常に見えるテキストファイル(ファイル内のASCII Pascalプログラムテキストとして検出されます)

fileまだ信じていないようです。

特定のファイルにおよびencoding/format1が含まれていると検出される可能性がありますencoding/format2fileただし、encoding/format1制約も満たしていることを確認する必要がありますencoding/format2

  • これを行う方法はありますか?
  • 「このファイルがASCII英語のテキスト規則に準拠していることを確認してください(または他のエンコーディング)」、答えは「はい」ですか、「いいえ」ですか?

答え1

--keep-goingたぶん(-k)オプションを使用できますfile。より一致する形式を作成します。

関連マニュアルページこのオプションの説明:

最初のゲームで停止しないでください。後続の一致の前には「\ 012-」文字列が追加されます。 (改行文字が必要な場合は-rオプションを参照してください。)最も強力なマジックモード(-lオプションを参照)が最初に来ます。

答え2

2番目の質問に答えてください。Joffelはすでに最初の質問に答えました

  • 「このファイルがASCII英語テキスト(または他のエンコーディング)の規則に準拠していることを確認してください」と質問して、「はい」または「いいえ」と答える方法はありますか?

-e/オプションを参照してください--exclude。 ~からfile(1):

-e, --除く テスト名

指定テストを除くテスト名ファイルの種類を決定するために実行されたテストの一覧から。

[...]

  • soft Consults magic files

これらのマジックファイルはPascalの報告を担当するので、-e softこれで十分です。また、有効にしている限り、リストから別のテストを除外することもできますascii

はい/いいえテストの場合-b(「短い」、つまりファイル名なし)と一緒に使用し、--mime-encodingエンコードのみを出力します。次に、単純な文字列比較を実行します。

if [ "$(file -b --mime-encoding -e soft $file)" == "us-ascii" ] ; then
  echo yes
else
  echo no
fi

関連情報