我写了一个小脚本,它打印包含有问题的字符序列的文件的名称。
#!/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
我想将它组合成一行,即通过 grep 查找 \r 或 \t 或尾随空格。我将如何构建一个正则表达式来做到这一点?似乎对于转义字符需要使用特殊序列($'\X'
),我不知道如何组合这些......
我正在运行 OS X,并且正在寻找一种适用于基于 BSD 和 GNU 的系统的解决方案。