正则表达式将文件中的空格减少1

时间:2010-09-07 13:31:32

标签: regex

我有一个文件,我想在其中进行以下更改:

n个连续空格替换为n-1个空格。

示例:

输入:

a b  c   e
fg j    ij k

输出:

ab c  e
fgj   ijk

我该怎么做?

2 个答案:

答案 0 :(得分:5)

s/ ( *)/$1/g

也就是说,用后面的空格数替换后跟任意数字(包括0)空格的空格。实质上,我们在捕获/ +/时匹配/ */

答案 1 :(得分:5)

您可以在sed中执行以下操作:

sed  -r -i 's/ ( *)/\1/g' in

正则表达式使用/ ( *)/搜索空格,后跟零个或多个空格。它会记住零个或多个空格部分,并用记住的部分替换整个空格。