grep 命令(Linux系统基础指令二grep命令)

摘要:grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户。grep 命令用于查找文件里符合条件的字符串,它能使用正则表达式搜索文本,并把匹配的行打...

摘要:grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户。grep 命令用于查找文件里符合条件的字符串,它能使用正则表达式搜索文本,并把匹配的行打印出来。作为linux中最为常用的三大文本(awk,sed,grep)处理工具之一,就像在windows中打开txt文件,然后使用快捷键 “Ctrl+F” 在文本中查找某个字符串一样,就是说可以把grep理解成字符查找工具。

一、命令格式:grep [option] pattern file

常用参数

-a --text

不要忽略二进制的数据。 将 binary 文件以 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

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

-q --quiet或--silent

不显示任何信息。

-r --recursive

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

-s --no-messages

不显示错误信息。

-v --revert-match

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

-V --version

显示版本信息。

-w --word-regexp

只显示全字符合的列。

-x --line-regexp

只显示全列符合的列。

-y

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

--color=auto

可以将找到的关键词部分加上颜色的显示

二、使用例子

说明:grep 搜索字符串的命令格式:grep string filename

寻找字串的方法很多,比如想找所有以P开头的行。

^P 以P开头的行,^表示开始的意思

P$ 以P结尾的行,$表示结束的意思

^[0-9] 以数字开始的行,[]内可列举字母

^[124ab] 以1,2,4,a,或b开头的行

* 星号表示0个以上的字母(可以没有)

+ 加号表示1个以上的字母

.\ 斜线可以去掉特殊意义

<eg> grep \'^.\' myfile.txt 列出所有以句点开头的行。

1、查找指定进程

执行指令# ps -ef|grep java。如下图

Linux系统基础指令(二)——grep命令

2、查找指定进程个数

执行指令# ps -ef|grep -c java。如下图

Linux系统基础指令(二)——grep命令

3、将多个文件之间相同的行输出来

首先执行指令# cd /etc/sysconfig/network-scripts/

然后执行指令# grep "IPADDR" ifcfg-ens192 ifcfg-lo。如下图

Linux系统基础指令(二)——grep命令

4、输出被模式匹配到行

执行指令# grep "root" /etc/passwd。如下图

Linux系统基础指令(二)——grep命令

5、只输出被模式匹配到的字符串,而不是整个行

执行指令# grep -o "root" /etc/passwd。如下图

Linux系统基础指令(二)——grep命令

6、从文件中查找关键词,默认情况区分大小写

执行指令# grep 'User' /etc/passwd。如下图

Linux系统基础指令(二)——grep命令

7、从文件中查找关键词,忽略大小写,默认情况区分大小写

执行指令# grep -i 'user' /etc/passwd。如下图

Linux系统基础指令(二)——grep命令

8、统计文件的行数

执行指令# grep -c "^.*$" /etc/passwd。如下图

Linux系统基础指令(二)——grep命令

等同于指令# wc –l。如下图

Linux系统基础指令(二)——grep命令

9、匹配正则表达式的开始行

执行指令# grep '^root' /etc/group。如下图

Linux系统基础指令(二)——grep命令

10、匹配正则表达式的结束行

执行指令# grep 'user$' /etc/group。如下图

Linux系统基础指令(二)——grep命令

11、使用扩展模式匹配

执行指令# netstat -an|grep -E "ESTABLISHED|WAIT|LISTEN"。如下

Linux系统基础指令(二)——grep命令

备注:加上-E 多条件用""包起来,然后多条件之间用|管道符分开。

  • 发表于 2022-10-30 13:29
  • 阅读 ( 99 )
  • 分类:互联网

0 条评论

请先 登录 后评论
一条鱼
一条鱼

724 篇文章

你可能感兴趣的文章

相关问题