为什么这个 sed 正则表达式不匹配?

为什么这个 sed 正则表达式不匹配?

我最近开始学习了sed。我做到了

$seq 10 | sed '/[^049]/d'

我正期待着

4 
9
10

作为输出。但我得到了

4
9

我在理解这个正则表达式时在哪里犯了错误?

答案1

1号码中的匹配10[^049]因此将其删除。

答案2

如果您确实想显示包含“0”、“4”或“9”的行,请按以下步骤操作:

seq 10 | sed -n '/[049]/p'

指示-nsed不是打印任何行。该p命令指示sed打印与/regex/

或者,您始终可以使用grep:-)

seq 10 | grep -E "[049]"

相关内容