0%
grep [选项] pattern [文件名]
命令中的选项为:
- -? 同时显示匹配行上下的?行,如:
grep -2 pattern filename
同时显示匹配行的上下2行。
- -A ? 显示匹配行和后面的?行, 如:
grep -A 2 pattern filename
- -B ? 显示匹配行和前面的?行
- -b,–byte-offset 打印匹配行前面打印该行所在的块号码。
- -c,–count 只打印匹配的行数,不显示匹配的内容。
- -f File,–file=File 从文件中提取模板。空文件中包含0个模板,所以什么都不匹配。
- -h,–no-filename 当搜索多个文件时,不显示匹配文件名前缀。
- -i,–ignore-case 忽略大小写差别。
- -q,–quiet 取消显示,只返回退出状态。0则表示找到了匹配的行。
- -l,–files-with-matches 打印匹配模板的文件清单。
- -L,–files-without-match 打印不匹配模板的文件清单。
- -n,–line-number 在匹配的行前面打印行号。
- -s,–silent 不显示关于不存在或者无法读取文件的错误信息。
- -v,–revert-match 反检索,只显示不匹配的行。
- -w,–word-regexp 如果被<和>引用,就把表达式做为一个单词搜索。
- -V,–version 显示软件版本信息。
1 2 3 4 5 6 7 8 9 10 11 12
| ls -l | grep '^a' 通过管道过滤ls -l输出的内容,只显示以a开头的行。 grep 'test' d* 显示所有以d开头的文件中包含test的行。 grep 'test' aa bb cc 显示在aa,bb,cc文件中匹配test的行。 grep '[a-z]' aa 显示所有包含每个字符串至少有5个连续小写字符的字符串的行。 grep 'w(es)t.*' aa 如果west被匹配,则es就被存储到内存中,并标记为1,然后搜索任意个字符(.*),这些字符后面紧跟着另外一个es(),找到就显示该行。如果用egrep或grep -E,就不用""号进行转义,直接写成'w(es)t.*'就可以了。 grep -i pattern files :不区分大小写地搜索。默认情况区分大小写 grep -l pattern files :只列出匹配的文件名, grep -L pattern files :列出不匹配的文件名, grep -w pattern files :只匹配整个单词,而不是字符串的一部分(如匹配‘magic’,而不是‘magical’), grep -C number pattern files :匹配的上下文分别显示[number]行, grep pattern1 | pattern2 files :显示匹配 pattern1 或 pattern2 的行, grep pattern1 files | grep pattern2 :显示既匹配 pattern1 又匹配 pattern2 的行。
|
pattern为所要匹配的字符串,可使用下列模式
1 2 3 4 5 6 7
| . 匹配任意一个字符 * 匹配0 个或多个*前的字符 ^ 匹配行开头 $ 匹配行结尾 [] 匹配[ ]中的任意一个字符,[]中可用 - 表示范围, 例如[a-z]表示字母a 至z 中的任意一个 \ 转意字符
|