删除所有尾随空格

时间:2011-05-13 13:57:55

标签: regex perl

我想从.rb文件中删除所有尾随空格。此外,我想删除所有尾随^ M字符。这就是我所拥有的。看起来好吗?

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

2 个答案:

答案 0 :(得分:4)

如果你想要一个用于尾随空格的正则表达式,请使用代表所有空白字符的\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/'

但这意味着行现在再次有尾随空格。

答案 1 :(得分:0)

我认为find + sed将为您完成这项工作:

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

Mac 上使用此命令,因为在Mac的sed上无法识别\s(perl扩展名):

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

-i用于内联编辑 -i.bak用于保留原始文件的备份,扩展名为.bak。