удаление всех конечных пробелов - PullRequest
1 голос
/ 13 мая 2011

Я хочу удалить все конечные пробелы из моего файла .rb. Также я хочу удалить все завершающие символы ^ M. Это то, что у меня есть. Это выглядит хорошо?

find . -name '*.rb' | xargs perl -pi -e 's/ +$//'

Ответы [ 2 ]

4 голосов
/ 13 мая 2011

Если вам нужно регулярное выражение для конечных пробелов, используйте метасимвол \s, который обозначает все пробельные символы

find . -name '*.rb' | xargs perl -pi -e 's/\s+$//'

Если вы хотите сохранить разрыв строки, измените термин замены на что-то вроде

find . -name '*.rb' | xargs perl -pi -e 's/\s+$/\n/'

или

find . -name '*.rb' | xargs perl -pi -e 's/\s+$/\r\n/'

Это, однако, будет означать, что теперь строки снова имеют пробел.

0 голосов
/ 13 мая 2011

Я думаю, что find + sed сделает эту работу за вас:

find . -name '*.rb' -exec sed -i.bak 's/\s*$//' {} \;

On Mac используйте эту команду, поскольку \s (расширение perl) не распознается в sed Mac:

find . -name '*.rb' -exec sed -i.bak 's/[ ^I^M]*$//' {} \;

-i для встроенного редактирования
-i.bak для хранения резервной копии оригинала с расширением .bak.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...