Я закончил тем, что запустил это, что является смесью версии pojo и adams.
Он будет очищать как конечные пробелы, так и другую форму конечных пробелов, возврат каретки:
find . -not \( -name .svn -prune -o -name .git -prune \) -type f \
-exec sed -i 's/[:space:]+$//' \{} \; \
-exec sed -i 's/\r\n$/\n/' \{} \;
Она не коснется папки .git, если она есть.
Редактировать : Сделано немного безопаснее после комментария, не позволяя принимать файлы с ".git" или ".svn" в нем. Но будьте осторожны, будет касаться двоичных файлов, если они у вас есть. Используйте -iname "*.py" -or -iname "*.php"
после -type f
, если хотите, чтобы оно касалось, например, .py и .php-файлы.
Обновление 2 : теперь заменяет все виды пробелов в конце строки (что также означает табуляцию)