考虑这个文本文件:
TEST FILE : test #No match
#No match
Run grep "1133*" on this file #Match
#No match
This line contains the number 113. #Match
This line contains the number 13. #No match
This line contains the number 133. #No match
This line contains the number 1133. #Match
This line contains the number 113312. #Match
This line contains the number 1112. #No match
This line contains the number 113312312. #Match
This line contains no numbers at all. #No match
grep
命令如何评估1133*
正则表达式?
为什么包含113
的行是肯定的?
正则表达式1133*
是否意味着除了
找到包含单词1133+anything else
的所有行?
此示例位于tldp文档页面。
答案 0 :(得分:8)
您正在考虑使用shell通配符,*
匹配任何内容。在regular expressions中,*
是quantifier,意思是“零或更多”之前的任何内容,在这种情况下为3
。
因此,您的表达方式意味着113
后跟零个或多个3
s。
答案 1 :(得分:1)
尝试 grep“1133 $” 要么 grep“^ 1133 $”
其中^是行的开头,$是行的结尾
如果您的行假设有3列: aaa 113 bbbb
cat file.txt | awk'{print $ 2}'| grep“^ 1133 $”| wc -l </ p>
确保您只查看特定列