为什么以下命令打印数值?
$ iostat | sed -n '/[:digit:]/!p'
1.56 1.38 0.31 0.34 0.03 96.38
为什么以下命令打印数值?
$ iostat | sed -n '/[:digit:]/!p'
1.56 1.38 0.31 0.34 0.03 96.38
您尝试使用的 POSIX 字符类必须放在正则括号表达式内,所以
[[:digit:]]
不要放在[:digit:]
. 您也不限于在括号表达式中仅使用一个字符类,因此可以使用[[:digit:][:punct:]]
or 。[^[:digit:]]
:
您的命令实际上意味着“打印所有与任何字符,d
,i
或不匹配的g
行t
:你想要的是:
请注意,较新的 GNU sed 版本(本例中为 v.4.4)将打印警告: