无法编写正确的正则表达式来删除多个空格

时间:2011-02-15 17:48:55

标签: regex sed removing-whitespace

$ echo "Anirudh   Tomer" | sed 's/ +/ /g'
Anirudh   Tomer

我期待它删除Anirudh和Tomer之间的那3个空格,并将结果显示为"Anirudh Tomer"

我是初学者。 在此先感谢您的帮助。

3 个答案:

答案 0 :(得分:2)

您需要使用-r标志启用sed的扩展正则表达式支持。

echo "Anirudh   Tomer" | sed -r 's/ +/ /g'

在扩展正则表达式中,不得转义?+|元字符(请参阅wikipedia)。 *元字符有效,因为它属于basic regular expressions

答案 1 :(得分:1)

与VIM正则表达式类似,您需要使用反斜杠转义+量词:

sed 's/ \+/ /g'

答案 2 :(得分:0)

echo "Anirudh   Tomer" | tr -s ' '