我希望搜索文本文件并返回包含任何单词的所有行。我使用在线工具(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
答案 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