GNU/Linux >> Linux の 問題 >  >> Linux

Linux の file コマンドがテキスト ファイルをバイナリ データとして報告する原因は何ですか?

Vim は、何を投げても文句を言わずに意味を理解しようと懸命に努力します。これにより、file の診断に使用するツールとしては比較的貧弱です。 の出力。

Vim の「[converted]」通知は、ロケール設定 (LANG など) によって提案されたテキスト エンコーディングで vim が予期しない何かがファイルにあったことを示しています。

他の人がすでに提案しています

  • cat -v
  • xxd

非 ASCII 文字の grep を試すことができます。

  • grep -P '[\x7f-\xff]' filename

他の可能性は、プラットフォームの非標準の行末 (つまり、CRLF または CR) ですが、 file を期待します それに対処し、「DOS テキスト ファイル」などを報告します。


file -D filename を実行すると 、 file 実行するテストを含むデバッグ情報を表示します。終わり近くで、ファイルの種類を決定する際に成功したテストが表示されます。

通常のテキスト ファイルの場合、次のようになります:

[31> 0 regex,=^package[ \t]+[0-9A-Za-z_:]+ *;,""]
1 == 0 = 0
ascmagic 1
filename.txt: ISO-8859 text, with CRLF line terminators

これにより、その MIME タイプであると判断するために何が見つかったかがわかります。


問題のある行を見つけるために二分探索を使用して問題を見つけました。

head -n {1/2 line count} file.cpp > a.txt
tail -n {1/2 line count} file.cpp > b.txt

file を実行中 各半分に対して、プロセスを繰り返すと、問題のある行を見つけるのに役立ちました. コントロールを見つけました +P (^P ) 文字が埋め込まれています。それを削除すると、問題は解決しました。今後、これらの文字 (およびその他の拡張文字) を検索する Perl スクリプトを自分で作成します。

すべてのヒントに答えてくれたすべての人に感謝します!


Linux
  1. Linuxでのファイルコマンドの基本的な例

  2. LinuxでのSplitコマンドの9つの便利な例

  3. Linuxのコマンドラインを使用してファイルを作成する

  1. LinuxでTarコマンドを使用する方法

  2. Linuxターミナルでテキストファイルを作成する4つの方法

  3. Linuxでファイルをコピー、読み取り、削除するコマンドは何ですか

  1. Linuxでの.bashrcファイルの目的は何ですか

  2. Windows の Linux の File コマンドに相当するものは何ですか?

  3. Linux test -a コマンド テストとは何ですか?