这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 综合技术 » 基础知识 » [学习笔记]玩一玩Linux命令行--grep命令操作示例

共2条 1/1 1 跳转至

[学习笔记]玩一玩Linux命令行--grep命令操作示例

院士
2024-08-19 14:04:20     打赏

在上一篇帖子里面,我们讲解了grep命令的理论知识。在本帖子里面,我们以示例的方式来讲解grep命令。

示例1:假设有一份 emp.data 员工清单,现在要搜索此文件,找出职位为 CLERK 的所有员工,则执行命令如下:

[root@localhost ~]# grep CLERK emp.data
#输出内容

在此基础上,如果只想知道职位为 CLERK 的员工的人数,可以使用“-c”选项,执行命令如下:

[root@localhost ~]# grep -c CLERK emp.data
#输出内容

示例2:搜索 emp.data 文件,使用正则表达式找出以 78 开头的数据行,执行命令如下:

[root@localhost ~]# grep ^78 emp.data
#输出内容

示例3:搜索data2.txt文件,搜索其中包含"data"的行,命令如下:

[root@localhost ~]# cat data2.txt
line1:This is the header line 1.
line2:This is the first data line 2.
line3:This is the second DATA line 3.
line4:This is the last line 4.

[root@localhost ~]# grep -inr data data2.txt
2:line2:This is the first data line 2.
3:line3:This is the second DATA line 3.
# -i 表示忽略大小写,-n表示列出行号,-r表示递归搜索,-r会匹配当前目录所有文件,以及子目录下的所有文件

示例4:使用grep过滤命令输出

[root@localhost ~]# ps -aux|grep systemd
root         246  0.2  0.2  95284 38520 ?        Ss   Jul07 319:31 /lib/systemd/systemd-journald
root         268  0.0  0.0  45696  3776 ?        Ss   Jul07   0:15 /lib/systemd/systemd-udevd
root         534  0.0  0.0  38084  4416 ?        Ss   Jul07   0:49 /lib/systemd/systemd-logind
message+     547  0.0  0.0  36684  3472 ?        Ss   Jul07   2:04 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation
root        1050  0.0  0.0  56540  6184 ?        Ss   Jul07   0:29 /lib/systemd/systemd --user
tiger       1051  0.0  0.0  56636  6348 ?        Ss   Jul07  93:05 /lib/systemd/systemd --user
falcon      1055  0.0  0.0  56516  6244 ?        Ss   Jul07   0:00 /lib/systemd/systemd --user
baichun+ 2981158  0.0  0.0  12756  1016 pts/1    S+   12:38   0:00 grep --color=auto --exclude-dir=.bzr --exclude-dir=CVS --exclude-dir=.git --exclude-dir=.hg --exclude-dir=.svn --exclude-dir=.idea --exclude-dir=.tox systemd
baichun+ 3906675  0.0  0.0  56404  6196 ?        Ss   Aug31   0:00 /lib/systemd/systemd --user

示例5:用 dmesg 列出核心信息,再以 grep 找出包含 eth 那行,在关键字所在行的前两行与后三行也一起捉出来显示

[root@localhost ~]# dmesg | grep -n -A3 -B2 'eth'
245-PCI: setting IRQ 10 as level-triggered
246-ACPI: PCI Interrupt 0000:00:0e.0[A] -> Link [LNKB] ...
247:eth0: RealTek RTL8139 at 0xee846000, 00:90:cc:a6:34:84, IRQ 10
248:eth0: Identified 8139 chip type 'RTL-8139C'
249-input: PC Speaker as /class/input/input2
250-ACPI: PCI Interrupt 0000:00:01.4[B] -> Link [LNKB] ...
251-hdb: ATAPI 48X DVD-ROM DVD-R-RAM CD-R/RW drive, 2048kB Cache, UDMA(66)
# 如上所示,你会发现关键字 247 所在的前两行及 248 后三行也都被显示出来!
# 这样可以让你将关键字前后数据捉出来进行分析啦# -B2:Before前两行    -A3:After后三行

示例6:递归查找文件内容

[root@localhost ~]# grep -rn bcy *             # 纯字符串匹配,可以不加单引号,如果是正则表达式匹配,必须加单引号,如:grep -rn 'bcy' *temp.txt:1:my name is bcy.
test.txt:2:smierrth,bcy
#在当前目录及其子目录下搜索包含'bcy'行的文件,*代表搜索全部文件








关键词: 学习     笔记     Linux     命令行     grep    

专家
2024-08-19 20:05:30     打赏
2楼

感谢分享


共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]