Linux中的grep
命令是一个非常强大的文本搜索工具,它支持正则表达式(regex)语法
基本正则表达式:
.
:匹配任意单个字符。*
:匹配前面的字符0次或多次。^
:匹配行首。$
:匹配行尾。[abc]
:匹配方括号内的任意一个字符(a、b或c)。[^abc]
:匹配不在方括号内的任意一个字符。\{m,n\}
:匹配前面的字符至少m次,至多n次。例如,a\{2,\}
匹配至少两个连续的 “a”。使用-E
选项来启用扩展正则表达式:
?
:匹配前面的字符0次或1次。+
:匹配前面的字符1次或多次。|
:表示或,用于匹配多个模式之一。()
:用于分组,将几个字符单元进行处理。{m,n}
:匹配前面的字符至少m次,至多n次。例如,a{2,}
匹配至少两个连续的 “a”。使用-P
选项来启用Perl兼容正则表达式(PCRE):
\d
:匹配数字。\D
:匹配非数字。\s
:匹配空白字符(空格、制表符等)。\S
:匹配非空白字符。\w
:匹配单词字符(字母、数字或下划线)。\W
:匹配非单词字符。其他技巧:
grep -v
来反向匹配,即显示不符合条件的行。grep -i
来进行不区分大小写的匹配。grep -o
来仅输出匹配到的部分。grep -A n
、grep -B n
和grep -C n
来显示匹配行的上下文(后n行、前n行或前后n行)。grep -r
或grep -R
来递归搜索目录中的文件。grep -f file1 file2
从file1中读取模式并在file2中搜索这些模式。熟练掌握这些技巧可以帮助你更高效地使用grep
进行文本搜索。