- 締切済み
BOMを含むテキストファイルを検索する方法
複数のテキストファイルがあるのですが、その中からBOMが不可されているテキストファイルを知りたいのです。 できればWindowsではなく、Linux上でできるといいのですが、grepなどで検索することはできるのでしょうか。ffefという2バイトを含むということでいいと思ったのですが、それをどのようにして指定してやればいいのでしょうか。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- venzou
- ベストアンサー率71% (311/435)
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などに置換してから実行してください。
お礼
ありがとうございます!うまく抽出することができました。