問題のある文字シーケンスを含むファイルの名前を出力する小さなスクリプトを書きました。
#!/bin/bash
# Finds all files in the repository that contain
# undesired characters or sequences of characters
pushd .. >/dev/null
# Find Windows newlines
find . -type f | grep -v ".git/" | grep -v ".gitmodules" | grep -v "^./lib" | xargs grep -l $'\r'
# Find tabs (should be spaces)
find . -type f | grep -v ".git/" | grep -v ".gitmodules" | grep -v "^./lib" | xargs grep -l $'\t'
# Find trailing spaces
find . -type f | grep -v ".git/" | grep -v ".gitmodules" | grep -v "^./lib" | xargs grep -l " $"
popd >/dev/null
これを 1 行にまとめます。つまり、grep で \r または \t または末尾のスペースを検索します。これを行うにはどうすれば正規表現を作成できますか? エスケープ文字には特別なシーケンスを使用する必要があるようです ( $'\X'
)。これらを組み合わせる方法がわかりません...
私は OS X を実行しており、BSD と GNU ベースのシステムの両方で動作するソリューションを探しています。