我厌倦了源文件中无用的空格,我什至配置了 vim 来显示它们。
问题是我经常(如果不是总是)必须与我的开发人员伙伴一起处理无用的空间。
我只想扫描源文件(给定正则表达式)并从所有给定文件中删除空格。
我在网上搜索过(“bash 删除空格”等),但没有找到有用的东西。
答案1
如果无用的空格是指行尾的尾随空格,那么这将在 GNU 系统上工作:
find -name '*.c' -print0 | xargs -r0 sed -e 's/[[:blank:]]\+$//' -i
(替换*.c
为您的源文件匹配的内容)
答案2
这是一个反复出现的问题!
perl -i -pe 's/\s+\n/\n/' ./*.c
(这也删除了“ \r\n
”)
我通常使用稍微复杂的版本“nrs”(没有多余的空格):
#!/usr/bin/perl -pi
s/\h*(\r\n|\n|\r)/\n/g; ## normalize \n (DOS, MAC)
s/^(\xFF\xFE|\xFE\xFF|\xEF\xBB\xBF)//; ## remove BOM !
安装它:(chmod 755 nrs; cp nrs ~/bin;
或类似)
并使用:nrs ./*.c
不要在二进制文件中使用它!
答案3
答案4
为了避免接触已经正常的文件,使用 GNU 工具:
grep -rlZ --binary-files=without-match --include='*.c' '\s$' . |
xargs -r0 sed -i 's/\s+$//'