1) Многие другие ответы используют -E
. Я не уверен почему, так как это недокументированная совместимость BSD опция. -r
следует использовать вместо.
2) Для других ответов используйте -i ''
. Это должно быть просто -i
(или -i''
, если предпочтено), потому что -i
имеет суффикс сразу после.
3) Git специфическое решение:
git config --global alias.check-whitespace \
'git diff-tree --check $(git hash-object -t tree /dev/null) HEAD'
git check-whitespace | grep trailing | cut -d: -f1 | uniq -u -z | xargs -0 sed --in-place -e 's/[ \t]+$//'
Первый регистрирует псевдоним git check-whitespace
, в котором перечислены файлы с конечными пробелами.
Второй работает на них sed
.
Я использую только \t
вместо [:space:]
, поскольку я обычно не вижу вертикальных вкладок, каналов и неразрывных пробелов. Ваше измерение может отличаться.