linux grep命令
简介
grep (global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。
grep常用用法
[root@www ~]# grep [-acinv] [--color=auto] '搜寻字符串' filename 选项与参数: -a :将 binary 文件以 text 文件的方式搜寻数据 -c :计算找到 '搜寻字符串' 的次数 -i :忽略大小写的不同,所以大小写视为相同 -n :顺便输出行号 -v :反向选择,亦即显示出没有 '搜寻字符串' 内容的那一行! --color=auto :可以将找到的关键词部分加上颜色显示
注:--color=auto 来将关键字部分使用颜色显示
可以在 ~/.bashrc 内加上这行:alias grep='grep --color=auto'
执行source ~/.bashrc立即生效。
1、搜索字符串
grep 字符串 filename cat filename | grep 字符串 grep -n -A3 -B2 字符串 ----把关键字所在的前2行和后3行一起显示
2、递归查找
grep 'hello' * ----在当前目录搜索带'hello'行的文件 grep -r 'hello' * ----在当前目录及其子目录下搜索带'hello'行的文件 grep -l -r 'hello' * ----在当前目录及其子目录西安搜索'hello'行的文件,但不显示匹配的行,只显示匹配文件
3、正则匹配
't[ae]t' ----匹配tast、test '[^a-z]oo' ----oo前面没有小写字母 '^the' ----以the开头 '^[^a-zA-Z]' ----开头不是英文字母(^在[]内表示反向选择,在[]外表示行首) '\.$' ----结尾是小数点 grep -n '^$' -----找出空白行 .(小数点):代表一定有一个任意字符 *:重复一个字符 'o*' ----用于空字节或一个o以上的字节 'g.*g' ----g开头、g结尾,当中字符可有可无 'o\{2\}' ----2个o的字符串 'go\{2,5\}g' ----g后面接2到5个o,再接一个g
4、扩展
egrep '3+' file ----包含多个3的行
grep -E '3+' file
grep '3\+' file
egrep '(no)+' file ----搜索一个或多个连续的no的行 grep -E '(no)+' file grep '\(no\)\+' file