BASH Regex - 匹配验证器但不使用grep时匹配

时间:2015-12-04 11:27:19

标签: regex bash grep

我希望搜索文本文件并返回包含任何单词的所有行。我使用在线工具(regex101.com)对此进行了测试,并根据需要进行匹配。但是,当在grep命令中使用正则表达式时,它只返回与单个单词匹配的行。

我的命令:

grep \D original.txt

文件摘要:

229
229
kitchenDoor 229
229
229
230
230
230
230
230
kitchenDoor 230
230
231
525
525
525
526
cupCupboard 526
526
526
526
526
526
527
527
cupCupboard 527
527
527
kitchenDoor 538

我期待的回报是:

kitchenDoor 229
kitchenDoor 230
cupCupboard 256
cupCupboard 527
kitchenDoor 538

但我得到的是:

kitchenDoor 229
kitchenDoor 230
kitchenDoor 538

1 个答案:

答案 0 :(得分:2)

您需要使用-P参数,因为-P(perl_regexp)仅支持\D

grep -P '\D' original.txt

grep  '[^0-9]' original.txt

grep  '[^[:digit:]]' original.txt

grep  '[^[:digit:][:blank:]]' original.txt