将文件中的 2 个或更多空格替换为 NULL



使用 sed,如何用 NULL 替换 2 个或更多空格?

输入

200 0 0  100      300    400 10

期望的输出

200 0 0100300400 10

这将适用于任何sed,而不仅仅是GNU sed:

sed -e 's/   *//g'

你可以使用sed(这不是GNU sed特有的):

sed -r 's/[ ]{2,}//g' filename

或(不带-r):

sed 's/[ ]{2,}//g' filename

对于您的输入,这将产生:

200 0 0100300400 10
sed 's/  +//g' INPUTFILE

将工作(如果你有GNU sed)。

在这里发布以供参考,一个awk的解决方案:

$ echo '200 0 0  100      300    400 10' | awk '{gsub(/  +/,"")}1'
200 0 0100300400 10

Pure Bash。在脚本中,您可以使用参数替换:

str="200 0 0  100      300    400 10"
shopt -s extglob
str=${str// +( )/}
echo  "$str"
200 0 0100300400 10

替换${str// +( )/}删除所有空格,后跟至少一个空格。

相关内容

  • 没有找到相关文章

最新更新