2010-02-24 11:53:58 +0000 2010-02-24 11:53:58 +0000
232
232

如何匹配sed中的空格?

如何匹配sed中的空格?在我的数据中,我想匹配所有3个以上的空格字符(tab空格)并将其替换为2个空格。怎样才能做到这一点?

答案 (4)

240
240
240
2010-02-24 12:08:44 +0000

字符类\s将与空格字符<tab><space>相匹配。

例如:

$ sed -e "s/\s\{3,\}/ /g" inputFile

&001

将用两个空格代替至少3个空格的每一个序列。为了符合 POSIX 规范,请使用字符类 [[:space:]] 而不是 \s,因为后者是 GNU sed 扩展。请参考 POSIX 规范中的 sed BREs

70
70
70
2013-08-28 20:28:34 +0000

这可以在MacOS 10.8上使用:

sed -E "s/[[:space:]]+/ /g"
14
14
14
2010-04-07 15:12:34 +0000

一些旧版本的sed可能无法识别出空格匹配令牌。在这种情况下,你可以用’[[XZ][XZ]/*‘匹配一个或多个空格和制表符的序列,其中X是空格,Z是制表符。

11
11
11
2014-07-22 14:52:32 +0000
sed 's/[\t]*/"space or tab"/'