我正在尝试打印出至少一个非数字字符的所有行。
我的grep代码如下所示:grep '[^[:digit:]]' GTEST
GTEST在哪里:
TEST
55 55 Pink
123
sss
aaa
ss aaa ss
a 1 b 2 a b a
Doop Dap
12 13
77a
59360
输出正是GTEST中的输出,除了线的匹配部分(AKA所有的字母字符)都是红色的。而不是以红色显示匹配的字符,我/只/想要打印出包含匹配字符的行。
我一直在寻找grep
标签(-o,-w等),但似乎没有人为我做这些。
我错过了什么吗?
编辑:
预期输出为:
TEST
55 55 Pink
sss
aaa
ss aaa ss
a 1 b 2 a b a
Doop Dap
77a
答案 0 :(得分:3)
根据您的数据,我得到了这个输出:
grep '[^[:digit:]]' file
TEST
55 55 Pink
sss
aaa
ss aaa ss
a 1 b 2 a b a
Doop Dap
12 13
77a
您获得12 13
,因为12
和13
之间的空格是非数字字符。
如果您在数字之前或之后有空格,这也会给出输出,例如:123<space>
为了克服这个问题,你可以这样做:
grep '[^[:digit:] ]' file
TEST
55 55 Pink
sss
aaa
ss aaa ss
a 1 b 2 a b a
Doop Dap
77a
甚至更好:
grep '[^[:digit:][:blank:]]' file