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

use*_*425 1 regex

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

n空格替换连续的n-1空格.

例:

输入:

a b  c   e
fg j    ij k
Run Code Online (Sandbox Code Playgroud)

输出:

ab c  e
fgj   ijk
Run Code Online (Sandbox Code Playgroud)

我该怎么做?

hob*_*bbs 5

s/ ( *)/$1/g

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


cod*_*ict 5

你可以这样做sed:

sed  -r -i 's/ ( *)/\1/g' in
Run Code Online (Sandbox Code Playgroud)

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