我有一个看起来像这样的file.txt:
abe
abbe
cde
45a678
ae
cababb
12345
运行命令egrep [[:digit:]] file.txt
之后
它显示结果两个结果:“ 45a678”和“ 12345”。我不明白为什么它会显示第一个结果(我坚称正则表达式将只显示带有数字的行)。
答案 0 :(得分:2)
您正在搜索任何数字。您应该将其从行的开头(^)约束到结尾($),并在(+)之间找到至少一位数字。
egrep ^[[:digit:]]+$ file.txt
答案 1 :(得分:1)
仅匹配一个数字,而不检查所有行。
要解析所有行,您需要使用^
作为开始行,$
作为结束行。
结果
egrep ^\d+$ file.txt
仅将那些与数字匹配的行
答案 2 :(得分:0)
您的正则表达式[[:digit:]]
搜索具有[[:digit:]]
的行,因此45a678
匹配,因此请使用^[[:digit:]]*$
来匹配所有唯一数字的行:
$ egrep ^[[:digit:]]*$ file1.txt
12345