问答1 问答5 问答50 问答500 问答1000
网友互助专业问答平台

14个grep命令使用例子

提问网友 发布时间:2025-01-02 19:00
声明:本网页内容为用户发布,旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:1656858193@qq.com
1个回答
热心网友 回答时间:2025-01-02 20:59

所有的类linux系统都会提供一个名为grep(global regular expression print,全局正则表达式输出)的搜索工具。grep命令在对一个或多个文件的内容进行基于模式的搜索的情况下是非常有用的。模式可以是单个字符、多个字符、单个单词、或者是一个句子。

当命令匹配到执行命令时指定的模式时,grep会将包含模式的一行输出,但是并不对原文件内容进行修改。

在本文中,我们将会讨论到14个grep命令的例子。

例1 在文件中查找模式(单词)

在/etc/passwd文件中查找单词“linuxtechi”

复制代码代码如下:
root@Linux-world:~# grep linuxtechi /etc/passwd
linuxtechi:x:1000:1000:linuxtechi,,,:/home/linuxtechi:/bin/bash
root@Linux-world:~#

例2 在多个文件中查找模式。

复制代码代码如下:
root@Linux-world:~# grep linuxtechi /etc/passwd /etc/shadow /etc/gshadow
/etc/passwd:linuxtechi:x:1000:1000:linuxtechi,,,:/home/linuxtechi:/bin/bash
/etc/shadow:linuxtechi:$6$DdgXjxlM$4flz4JRvefvKp0DG6re:16550:0:99999:7:::/etc/gshadow:adm:*::syslog,linuxtechi
/etc/gshadow:cdrom:*::linuxtechi
/etc/gshadow:sudo:*::linuxtechi
/etc/gshadow:dip:*::linuxtechi
/etc/gshadow:plugdev:*::linuxtechi
/etc/gshadow:lpadmin:!::linuxtechi
/etc/gshadow:linuxtechi:!::
/etc/gshadow:sambashare:!::linuxtechi
root@Linux-world:~#
例3 使用-l参数列出包含指定模式的文件的文件名。

复制代码代码如下:
root@Linux-world:~# grep -l linuxtechi /etc/passwd /etc/shadow /etc/fstab /etc/mtab
/etc/passwd
/etc/shadow
root@Linux-world:~#
例4 使用-n参数,在文件中查找指定模式并显示匹配行的行号

复制代码代码如下:
root@Linux-world:~# grep -n linuxtechi /etc/passwd
39:linuxtechi:x:1000:1000:linuxtechi,,,:/home/linuxtechi:/bin/bash
root@Linux-world:~#
root@Linux-world:~# grep -n root /etc/passwd /etc/shadow

例5 使用-v参数输出不包含指定模式的行

  输出/etc/passwd文件中所有不含单词“linuxtechi”的行

复制代码代码如下:
root@Linux-world:~# grep -v linuxtechi /etc/passwd

例6 使用 ^ 符号输出所有以某指定模式开头的行

Bash脚本将 ^ 符号视作特殊字符,用于指定一行或者一个单词的开始。例如输出/etc/passes文件中所有以“root”开头的行

复制代码代码如下:
root@Linux-world:~# grep ^root /etc/passwd
root:x:0:0:root:/root:/bin/bash
root@Linux-world:~#

例7 使用 $ 符号输出所有以指定模式结尾的行。

  输出/etc/passwd文件中所有以“bash”结尾的行。

复制代码代码如下:
root@Linux-world:~# grep bash$ /etc/passwd
root:x:0:0:root:/root:/bin/bash
linuxtechi:x:1000:1000:linuxtechi,,,:/home/linuxtechi:/bin/bash
root@Linux-world:~#

Bash脚本将美元($)符号视作特殊字符,用于指定一行或者一个单词的结尾。

  例8 使用 -r 参数递归地查找特定模式

复制代码代码如下:
root@Linux-world:~# grep -r linuxtechi /etc/
/etc/subuid:linuxtechi:100000:65536
/etc/group:adm:x:4:syslog,linuxtechi
/etc/group:cdrom:x:24:linuxtechi
/etc/group:sudo:x:27:linuxtechi
/etc/group:dip:x:30:linuxtechi
/etc/group:plugdev:x:46:linuxtechi
/etc/group:lpadmin:x:115:linuxtechi
/etc/group:linuxtechi:x:1000:
/etc/group:sambashare:x:131:linuxtechi
/etc/passwd-:linuxtechi:x:1000:1000:linuxtechi,,,:/home/linuxtechi:/bin/bash
/etc/passwd:linuxtechi:x:1000:1000:linuxtechi,,,:/home/linuxtechi:/bin/bash
............................................................................

上面的命令将会递归的在/etc目录中查找“linuxtechi”单词

例9 使用 grep 查找文件中所有的空行

复制代码代码如下:
root@Linux-world:~# grep ^$ /etc/shadow
root@Linux-world:~#

由于/etc/shadow文件中没有空行,所以没有任何输出

  例10 使用 -i 参数查找模式

  grep命令的-i参数在查找时忽略字符的大小写。

  我们来看一个例子,在paswd文件中查找“LinuxTechi”单词。

复制代码代码如下:
nextstep4it@localhost:~$ grep -i LinuxTechi /etc/passwd
linuxtechi:x:1001:1001::/home/linuxtechi:/bin/bash
nextstep4it@localhost:~$

例11 使用 -e 参数查找多个模式

  例如,我想在一条grep命令中查找‘linuxtechi’和‘root’单词,使用-e参数,我们可以查找多个模式。

复制代码代码如下:
root@Linux-world:~# grep -e "linuxtechi" -e "root" /etc/passwd
root:x:0:0:root:/root:/bin/bash
linuxtechi:x:1000:1000:linuxtechi,,,:/home/linuxtechi:/bin/bash
root@Linux-world:~#

例12 使用 -f 用文件指定待查找的模式

  首先,在当前目录中创建一个搜索模式文件“grep_pattern”,我想文件中输入的如下内容。

复制代码代码如下:
root@Linux-world:~# cat grep_pattern
^linuxtechi
root
false$
root@Linux-world:~#

  首先,在当前目录中创建一个搜索模式文件“grep_pattern”,我想文件中输入的如下内容。

复制代码代码如下:
root@Linux-world:~# cat grep_pattern
^linuxtechi
root
false$
root@Linux-world:~#

  现在,试试使用grep_pattern文件进行搜索

复制代码代码如下:
root@Linux-world:~# grep -f grep_pattern /etc/passwd

 例13 使用 -c 参数计算模式匹配到的数量

  继续上面例子,我们在grep命令中使用-c命令计算匹配指定模式的数量

复制代码代码如下:
root@Linux-world:~# grep -c -f grep_pattern /etc/passwd
22
root@Linux-world:~#

例14 输出匹配指定模式行的前或者后面N行

  a)使用-B参数输出匹配行的前4行

复制代码代码如下:
root@Linux-world:~# grep -B 4 "games" /etc/passwd

  b)使用-A参数输出匹配行的后4行

复制代码代码如下:
root@Linux-world:~# grep -A 4 "games" /etc/passwd

  c)使用-C参数输出匹配行的前后各4行

复制代码代码如下:
root@Linux-world:~# grep -C 4 "games" /etc/passwd

本文如未解决您的问题请添加抖音号:51dongshi(抖音搜索懂视),直接咨询即可。

win7下刚装了grep, 想在txt文件中提取包含php?字符的行(txt文件中都是... Linux 文本三剑客(1)grep命令的使用 Linux-grep,查找文件里面内容 Linux 管道命令系列 三 提取命令 grep(一) ...因为长期sy...能不能喝明目地黄丸恢复起来,我也有在戒 怎样恢复 精气神 手淫引起耳鸣,双脚软,精神不好,运动则心脏累!该如何调养 板油和肥肉哪种熬的猪油好 肥肉和板油哪个熬油好 危险的小圆珠教案反思(合集4篇) 东台市三水滩生态休闲有限公司怎么样? 东台有名的游泳馆有几家,说说各自价格和特点 ...通讯录中不再有对方,前提均是对方未删除我,那么有两种情况,1.对方给... 牛奶桂花糕怎样做味道会极其的美味呢? 牛奶桂花糕如何做 怎样做牛奶桂花糕 怎么简单自制轻泥土的图片 上海轻质泡沫混凝土回填多少钱 怎样让excel单元格的行高变大? 鼻子不够挺能用哪些方法改善? 填动词 请各位大神帮帮忙实在不会啊 Linux命令之grep命令使用介绍 我在京东商城,买了东西,为什么得四天没有送来了? 公司破产清算,员工补偿如何设定 劳动法公司破产清算员工赔偿 爱国书签怎么做漂亮又简单 怎么做爱国书签 书签遗物中国文化为设计元素融入爱党爱国主义主题设计具有创新书签造 ... 爱国书签怎么做? 齿节径是什么意思? whatsapp注册不了 四川幼儿师范高等专科学校学院代码是多少 四川幼儿师范高等专科学校专业代码是多少? 四川幼儿师范高等专科学校学院代码是多少? 川南幼儿师范高等专科学校学校代码是多少 川南幼儿师范高等专科学校的学校代码是什么 学生校园运动会的新闻稿范文 精彩运动会的新闻稿范文 小学运动会新闻稿 学校精彩运动会的新闻稿范文 裁床机器是什么 聚氨酯胶粘剂有什么特性?聚氨酯胶粘剂在汽车上的应用
Top