• 締切済み

BOMを含むテキストファイルを検索する方法

複数のテキストファイルがあるのですが、その中からBOMが不可されているテキストファイルを知りたいのです。 できればWindowsではなく、Linux上でできるといいのですが、grepなどで検索することはできるのでしょうか。ffefという2バイトを含むということでいいと思ったのですが、それをどのようにして指定してやればいいのでしょうか。

みんなの回答

  • venzou
  • ベストアンサー率71% (311/435)
回答No.1

BOMは7種類あるようです。 http://www.atmarkit.co.jp/fxml/rensai/w3cread37/w3cread37_3.html こんな感じでどうでしょう? #!/usr/local/bin/perl @bom = (  chr(0x00).chr(0x00).chr(0xFE).chr(0xFF),  chr(0xFF).chr(0xFE).chr(0x00).chr(0x00),  chr(0x00).chr(0x00).chr(0xFF).chr(0xFE),  chr(0xFE).chr(0xFF).chr(0x00).chr(0x00),  chr(0xFE).chr(0xFF),  chr(0xFF).chr(0xFE),  chr(0xEF).chr(0xBB).chr(0xBF) ); #// カレントフォルダオープン opendir(DIR, './') or die; @files = sort readdir(DIR); closedir(DIR); foreach (@files) {  if(-f $_){   open(FILE, $_) or die;   $dat = <FILE>;   for(my $i = 0; $i <= $#bom; $i++){    if(index($dat, $bom[$i]) == 0){     print "$_\n";     last;    }   }   close(FILE);  } } #見やすいように、全角スペースが入ってますので、TABなどに置換してから実行してください。

参考URL:
http://www.atmarkit.co.jp/fxml/rensai/w3cread37/w3cread37_3.html
higuchon
質問者

お礼

ありがとうございます!うまく抽出することができました。

関連するQ&A

  • テキストファイル検索

    テキストファイル検索(grep)の際に、ある文字を含まないファイルを検索できるものはありますか。 また、一般的なエディタでは普通可能でしょうか。 #サブフォルダも対象 #本文の中のある文字列を含まないものを検索したい

  • grep検索のできるモバイル端末を探しています。複数のテキストファイル

    grep検索のできるモバイル端末を探しています。複数のテキストファイルについて、グレップ検索ができるテキストエディタなどが搭載されている(または搭載可能な)PDAはないでしょうか。ザウルスなどの旧機種ではなく、現在生産中の機種でお願いします。

  • テキストの中身を検索してファイルを見つける

    メモ帳などのテキストファイルの「中身の文字」から検索してファイルを探すとき、 秀丸の「grepの実行」を使えばいいと聞いたのですが、「検索するフォルダ」というところが がグレードアウトして使用できません。同じく、grepして置換も使えません どうすればいいのでしょうか?

  • テキストファイル内容の、16進数コードでの検索方法は?

    EUC-JPなテキストファイルをその場の環境に応じてLinux、Windowsの両方の環境で書いていると時々行末に余分な制御文字0dH(16進数コード)が入ったりします。 そんな時は、 $ sed -e "s/\x0d$//" INPUT_FILE > OUTPUT_FILE としています。 これに関連して、Linux上で、エディタを開かずにテキストファイル内の 0dH の有無を確かめるにはどのようなコマンドが適切でしょうか。(いちいち調べずに、sedに流し込めばよいのですが) なお、下記では、検索できませんでした。 $ grep "\x0d" INPUTFILE 2006年2月11日 RASUM2

  • ファイルの検索

    Windowsの検索機能でファイル名を指定あるいは、拡張子を指定することでファイルを検索することができますが、 複数のフォルダのみって訳にはいきません。 複数のフォルダのみを指定してその中を検索させる ソフトはないでしょうか?

  • LINUX上のすべてのファイルに対し文字検索する方法

    LINUX上のすべてのファイルに対し文字検索する方法ってありますでしょうか? GREPは絶対パスを指定しなくてはいけないので、どうしたらよいか分かりません。 どなたがご存知のかたがいらっしゃったら教えてください。よろしくお願い致します。

  • 複数のワードのファイルから検索

    或るフォルダの中に複数のワード(Word)のファイル(*.doc)があって、 この中から、ある言葉が含まれているファイルをすべて知りたいと思っています。 (このフォルダの中のファイルは、ほとんどワードのファイルですが、別のファイルも少しあります。) [スタート]-[検索]-[ファイルやフォルダ] で、「探す場所」の欄にそのフォルダを指定して、「含まれる文字列」にその言葉をすれば、期待通りの動作をしてくれると思いました。 実際に行うと、(検索結果は、そのフォルダのファイルの数より少ないのでなんらかの絞込みが行なわれたのは間違いないですが、)検索結果のファイルを開いてその言葉を検索すると、 「文書の検索が終了しました。検索項目が見つかりませんでした。」 と表示されてしまいます。 そのファイルには、その言葉は含まれていない、ということだと思います。 それはなぜですか。 逆に、「検索結果に含まれていないファイルには、その言葉は含まれていない」ということは言えますか。 正確にその言葉が含まれているファイルだけをすべて探すにはどうすればよいのでしょうか。 ============== ワードのファイルはたくさんある(百何十個)のですが、それを簡単にすべてテキストファイルにできれば、「秀丸」エディタはあるので、 grepでその言葉を探せるはずです。 簡単にテキストファイルにするにはどうすればよいのでしょうか。 Windows2000です。

  • ファイルの中の全文検索

    Windowsに関する質問です。 ディスクの中にあるすべてのファイル(主にtext、Word、Excel、PowerPoint,PDF)の中のテキストに検索をかけて、必要なファイルを検索することは可能でしょうか? Unixだとgrep searchword * で検索するイメージなのですが・・・ よろしくお願いします。

  • 複数のテキストファイルから全角文字を検索する方法

    お世話になっております。 windows10を使用して、半角文字を使用したテキストファイルを 作成しています。 そのテキストファイルは複数あるのですが、ファイルの一つに全角 文字が紛れ込んでいることがわかりました。 文字は特定の文字ではないので、findstrコマンドで検索することが できません。 その全角文字を検索する方法はありますでしょうか。 以上、よろしくお願いいたします。

  • キーワードをファイル内容で検索したい

    Linuxにおいても、Windowsの[検索]->[ファイルに含まれる単語または句]のように、ファイルの中身をキーワードで検索して、そのファイル名を表示するようにしたいのですが、コマンドやスクリプトが分りません。 スクリプトを作るとしたら、cat と grepを用いるのであろうということは分るのですが・・・ RedHat Enterprise WS4ではGUIの検索では内容検索が出来るのですが、コマンドラインから検索したいので。