我想从“ps aux”输出中删去多余的空格,并用一个空格替换它们。我要做的是:
ps axu | sed 's/[ ]+/ /g'
但是输出似乎没有改变,我仍然在令牌之间得到太多空格。
username 4876 ... <the rest of columns ommitted>
为什么这个正则表达式不匹配用户名和 pid 之间的空格?
我想从“ps aux”输出中删去多余的空格,并用一个空格替换它们。我要做的是:
ps axu | sed 's/[ ]+/ /g'
但是输出似乎没有改变,我仍然在令牌之间得到太多空格。
username 4876 ... <the rest of columns ommitted>
为什么这个正则表达式不匹配用户名和 pid 之间的空格?
因为
sed
使用基本正则表达式 (BRE),而+
不是其中的一部分。使用s/ */ /
(模式部分中的两个空格),或-E
用于 GNU 或 BSD 中的扩展正则表达式sed
:sed -E 's/ +/ /g'