【150918:再編集】
MacでBOM付きファイルを探す方法を検索すると、
file
コマンドで(with BOM)
と表示されるファイルを検索する方法がいくつかありました。
$ file BOM.txt
BOM.txt: UTF-8 Unicode (with BOM) text
しかし、fileコマンドでは(with BOM)
と表示されないBOM付きファイルがいくつも見つかったので、
別の方法を探しました。
そこで思いついたのが、hexdump
でバイナリを直接確認する方法でした。
find . -type f -name '*.php' | xargs -n1 hexdump -C | grep "ef bb bf"
上記のコマンドは、確かにBOM付きファイルを見つけることはできるのですが、
ファイルのパスや名前などが全く分からないため、著しく使い勝手の悪いコマンドでした。
そこで、他の検索方法をこの記事で教えて頂きたい旨を書いた所、
コメントでたくさんのアドバイスを頂くことができました。
結果、私の結論は下記のコマンドになりました。
grep -lr --include="*.php" ^$'\xef\xbb\xbf' .
解説
-
-l
:検索条件にマッチしたファイル名を表示 -
-r
:ディレクトリ内を再帰的に処理する -
--include
:検索対象のファイル名を指定 -
^
:正規表現で行の先頭を指定するメタ文字 -
$
:エスケープ・シーケンスを使用する宣言 -
\xef\xbb\xbf
:エスケープ・シーケンス/x
により16進数でBOMを指定
それでは、皆様も良いBOM付きファイル検索ライフをお送り下さい。