美文网首页
Linux grep 详细使用教程

Linux grep 详细使用教程

作者: Bioinfor生信云 | 来源:发表于2021-12-06 22:17 被阅读0次

通配符

符号 意义
* 代表{0到无穷多个}任意字符
? 代表{一定有一个}任意字符
[ ] 同样代表『一定有一个在括号内』的字符(非任意字符)。例如 [abcd] 代表『一定有一个字符, 可能是 a, b, c, d 这四个任何一个』
- 若有减号在中括号内时,代表『在编码顺序内的所有字符』。例如 [0-9] 代表 0 到 9 之间的所有数字
^ 若中括号内d 第一个字符为符号 (^) ,那表示『反向选择』,例如 [^abc] 代表 一定有一个字符,叧要是非 a, b, c d 其他字符就接受的意思。

grep

grep [-acinv] [--color=auto] '搜寻字符串' filename
-a :将 binary 档案以 text 档案的方式搜寻数据
-c :计算找到 '搜寻字符串' 的次数
-i :忽略大小写的不同
-n :顺便输出行号
-v :反向选择,即显示出没有 '搜寻字符串' 内容的那一行!
--color=auto :可以将找到的关键词部分加上颜色显示!
-A<显示行数> 或 --after-context=<显示行数> : 除了显示符合范本样式的那一列之外,并显示该行之后的内容。
-b 或 --byte-offset : 在显示符合样式的那一行之前,标示出该行第一个字符的编号。
-B<显示行数> 或 --before-context=<显示行数> : 除了显示符合样式的那一行之外,并显示该行之前的内容。
-C<显示行数> 或 --context=<显示行数>或-<显示行数> : 除了显示符合样式的那一行之外,并显示该行之前后的内容。
-d <动作> 或 --directories=<动作> : 当指定要查找的是目录而非文件时,必须使用这项参数,否则grep指令将回报信息并停止动作。
-e<范本样式> 或 --regexp=<范本样式> : 指定字符串做为查找文件内容的样式。
-E 或 --extended-regexp : 将样式为延伸的正则表达式来使用。
-f<规则文件> 或 --file=<规则文件> : 指定规则文件,其内容含有一个或多个规则样式,让grep查找符合规则条件的文件内容,格式为每行一个规则样式。
-F 或 --fixed-regexp : 将样式视为固定字符串的列表。
-G 或 --basic-regexp : 将样式视为普通的表示法来使用。
-h 或 --no-filename : 在显示符合样式的那一行之前,不标示该行所属的文件名称。
-H 或 --with-filename : 在显示符合样式的那一行之前,表示该行所属的文件名称。
-l 或 --file-with-matches : 列出文件内容符合指定的样式的文件名称。
-L 或 --files-without-match : 列出文件内容不符合指定的样式的文件名称。
-o 或 --only-matching : 只显示匹配PATTERN 部分。
-q 或 --quiet或--silent : 不显示任何信息。
-r 或 --recursive : 此参数的效果和指定"-d recurse"参数相同。
-s 或 --no-messages : 不显示错误信息。
-V 或 --version : 显示版本信息。
-w 或 --word-regexp : 只显示全字符合的列。
-x --line-regexp : 只显示全列符合的列。
-y : 此参数的效果和指定"-i"参数相同。

grep -n --color=auto 'abc' test
#提取test中所有以abc开头的行,并输出行号
image.png
grep -n -v  --color=auto 'abc' test
image.png

grep搭配通配符以及正则表达式的使用

image.png

如果我们想要搜寻 test 和 taste 这两个单词时,可以发现其实它们有共同的 't?st' 存在,所以我们可以这样来实现

grep -n 't[ae]st' test1
image.png

搜索包含oo但不包含g的行

grep -n 'oo' test1
grep -n [^g]'oo' test1
image.png
grep -n '^[A-Z]' test1#搜索所有以小写字母开头的行
grep -n '^[^a-zA-Z]' test1#搜索所有非字母开头的行
image.png

注意到了吧?那个 ^ 符号,在字符集合符号(括号[])之内与之外是不同的! 在 [ ] 内代表『反向选择』,在 [ ] 外则代表定位在行首的意义!

利用限定符{}精确查找

grep -n 'o\{1,2\}' test1
image.png

相关文章

网友评论

      本文标题:Linux grep 详细使用教程

      本文链接:https://www.haomeiwen.com/subject/dkegxrtx.html