Linu命令学习


Linu命令学习——grep命令

Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本

1)命令格式

grep [option] pattern file

2)命令功能

用于过滤/搜索特定字符,可使用正则表达式配合使用,使用上十分灵活

3)命令参数

4.使用案例

1)在文件中查找

在/etc/passwd文件中查找单词“usr”,其命令为:

grep  usr  /etc/passwd

输出为:


Linu命令学习——grep命令

2)多文件中查找

在/etc/passwd /etc/shadow /etc/gshadow 中查找root,命令为

grep root /etc/shadow  /etc/passwd  /etc/gshadow

命令执行输出为

/etc/shadow:root:$6$T7J6czm9gidfK5dR$Pw.S0.kimj9HZLp.wcg6pyr5UHIp0PKNJM.ahJAN0Q8BGWUyQTiWG2DpkujaQITMkXVvOSQkKzQrnS9BGuN0V/:19054:0:99999:7:::
/etc/passwd:root:x:0:0:root:/root:/bin/bash
/etc/passwd:nm-openvpn:x:118:124:NetworkManager OpenVPN,,,:/var/lib/openvpn/chroot:/usr/sbin/nologin
/etc/gshadow:root:*::

3)显示查找的文件名

-l 参数可以显示文件名

grep -l root /etc/shadow  /etc/passwd  /etc/gshadow

命令执行后输出

/etc/passwd
/etc/shadow
/etc/gshadow

4)显示区配的行号

-N参数,在文件中查找指定模式并显示匹配行的行号

grep -n root /etc/shadow  /etc/passwd  /etc/gshadow

命令执行后输出

/etc/passwd:1:root:x:0:0:root:/root:/bin/bash
/etc/passwd:37:nm-openvpn:x:118:124:NetworkManager OpenVPN,,,:/var/lib/openvpn/chroot:/usr/sbin/nologin
/etc/shadow:1:root:$6$T7J6czm9gidfK5dR$Pw.S0.kimj9HZLp.wcg6pyr5UHIp0PKNJM.ahJAN0Q8BGWUyQTiWG2DpkujaQITMkXVvOSQkKzQrnS9BGuN0V/:19054:0:99999:7:::
/etc/gshadow:1:root:*::

5)输出不匹配的数据行

输出/etc/passwd文件中所有不含单词“usr”的行,命令

grep -v  usr /etc/passwd

命令执行后的输出为

root:x:0:0:root:/root:/bin/bash
sync:x:4:65534:sync:/bin:/bin/sync
tss:x:106:111:TPM software stack,,,:/var/lib/tpm:/bin/false
speech-dispatcher:x:114:29:Speech Dispatcher,,,:/run/speech-dispatcher:/bin/false
hplip:x:119:7:HPLIP system user,,,:/run/hplip:/bin/false
whoopsie:x:120:125::/nonexistent:/bin/false
gnome-initial-setup:x:124:65534::/run/gnome-initial-setup/:/bin/false
gdm:x:125:130:Gnome Display Manager:/var/lib/gdm3:/bin/false

6)匹配指定头的数据行

在/etc/passwd 中,输出以‘root' 开始的数据行。命令

grep ^root /etc/passwd

执行后输出

root:x:0:0:root:/root:/bin/bash

7)匹配指定结尾的数据行

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

grep bash$ /etc/passwd

命令执行结果为

root:x:0:0:root:/root:/bin/bash
123:x:1000:1000:123,,,:/home/123:/bin/bash

8)查找所有空行

命令

grep ^$  /test/a1.txt

输出为


Linu命令学习——grep命令

9) 忽略参数大小写

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

grep -i ROOT  /etc/passwd
/etc/shadow:root:$6$T7J6czm9gidfK5dR$Pw.S0.kimj9HZLp.wcg6pyr5UHIp0PKNJM.ahJAN0Q8BGWUyQTiWG2DpkujaQITMkXVvOSQkKzQrnS9BGuN0V/:19054:0:99999:7:::
/etc/passwd:root:x:0:0:root:/root:/bin/bash
/etc/passwd:nm-openvpn:x:118:124:NetworkManager OpenVPN,,,:/var/lib/openvpn/chroot:/usr/sbin/nologin

10)多参数查找

同时查找 'root ' 与‘usr' ,命令

grep -e 'root' -e 'usr' /etc/passwd


Linu命令学习——grep命令

11)输出匹配数量

-c参数,可以输出匹配到的所有数量

grep -c -e 'root' -e 'usr' /etc/passwd

39

12) 输出匹配到的指定的行

a)前4行

grep -B 4 'root' /etc/passwd 

输出

root:x:0:0:root:/root:/bin/bash
--
speech-dispatcher:x:114:29:Speech Dispatcher,,,:/run/speech-dispatcher:/bin/false
avahi:x:115:121:Avahi mDNS daemon,,,:/var/run/avahi-daemon:/usr/sbin/nologin
kernoops:x:116:65534:Kernel Oops Tracking Daemon,,,:/:/usr/sbin/nologin
saned:x:117:123::/var/lib/saned:/usr/sbin/nologin
nm-openvpn:x:118:124:NetworkManager OpenVPN,,,:/var/lib/openvpn/chroot:/usr/sbin/nologin

b)后4行

grep -A 4 "root" /etc/passwd


c)前后各4行

grep -C 4 "root" /etc/passwd
展开阅读全文

页面更新:2024-05-10

标签:行号   命令   大小写   文件名称   样式   字符   参数   文件   内容   数据

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2008-2024 All Rights Reserved. Powered By bs178.com 闽ICP备11008920号-3
闽公网安备35020302034844号

Top