四时宝库

程序员的知识宝库

强大的文本搜索工具(支持正则表达式)

查询文件中的内容

grep [-abcdDEFGHhIiJLlmnOopqRSsUVvwxZ] [-A num] [-B num] [-C[num]]

[-e pattern] [-f file] [--binary-files=value] [--color[=when]]

[--colour[=when]] [--context[=num]] [--label] [--line-buffered]

[--null] [pattern] [file ...]

描述


常用参数

-a , --text

不要忽略二进制的数据。

-A<显示行数> , --after-context=<显示行数>

除了显示符合范本样式的那一列之外,并显示该行之后的内容。

-b 或 --byte-offset

在显示符合样式的那一行之前,标示出该行第一个字符的编号。

-B<显示行数> , --before-context=<显示行数>

除了显示符合样式的那一行之外,并显示该行之前的内容。

-c , --count

计算符合样式的列数。

-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

在显示符合样式的那一行之前,表示该行所属的文件名称。

-i , --ignore-case

忽略字符大小写的差别。

-l , --file-with-matches

列出文件内容符合指定的样式的文件名称。

-L , --files-without-match

列出文件内容不符合指定的样式的文件名称。

-n , --line-number

在显示符合样式的那一行之前,标示出该行的列数编号。

-o , --only-matching

只显示匹配PATTERN 部分。

-q , --quiet,--silent

不显示任何信息。

-r , --recursive

此参数的效果和指定"-d recurse"参数相同。

-s , --no-messages

不显示错误信息。

-v , --invert-match

显示不包含匹配文本的所有行。

-V , --version

显示版本信息。

-w , --word-regexp

只显示全字符合的列。

-x ,--line-regexp

只显示全列符合的列。

-y

此参数的效果和指定"-i"参数相同。

实战应用

文本内容

i@MacBook-Air ~ % cat a.txt
123
eeeeee
rwqrew
oeiirut
32232

在a.txt中查询123字符串

i@MacBook-Air ~ % grep 123 a.txt             
123

查询123并现实行号

i@MacBook-Air ~ % grep -n 123 a.txt 
1:123

排除123,只显示其他内容,查看配置文件时排除注释很方便

i@MacBook-Air ~ % grep -v 123 a.txt 
eeeeee
rwqrew
oeiirut
32232

使用正则表达式查询数字内容

i@MacBook-Air ~ % grep -E "[1-9]+" a.txt 
123
32232

同时显示匹配内容下面两行数据,如果不设置-A参数就只显示匹配行

i@MacBook-Air ~ % grep -A 2 123 a.txt 
123
eeeeee
rwqrew

grep可以与其他命令组成管道进行复杂查询

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言
    友情链接