CR が含まれている場所を表示する
なぜか CR (キャリッジリターン) コードが含まれてしまっているファイルが散見される。FTP のクライアントやバージョン管理システムのクライアントが自動で LF を CR + LF に変換したものの残骸かもしれない。ともかく CR があるところを全部知りたい。そのうえで除去するか、いかすか決めたい。そんなときが私には訪れた。で、シェルスクリプト。
target_dir=app tmp=tmp.$$ find $target_dir -name "*.php" | while read file; do xxd -g1 < $file > $tmp grep ' 0d ' $tmp && echo -e "@@@@@\n$file" done rm $tmp
ファイル内に ' 0d ' という文字列が含まれていると誤検知するけど、まあとりあえずのようには十分だった。