
フォローアップです。正常に見えるテキストファイル(ファイル内のASCII Pascalプログラムテキストとして検出されます)
file
まだ信じていないようです。
特定のファイルにおよびencoding/format1
が含まれていると検出される可能性がありますencoding/format2
。file
ただし、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