Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本
grep [option] pattern file
用于过滤/搜索特定字符,可使用正则表达式配合使用,使用上十分灵活
1)在文件中查找
在/etc/passwd文件中查找单词“usr”,其命令为:
grep usr /etc/passwd
输出为:
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
输出为
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
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
本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828
© CopyRight 2008-2024 All Rights Reserved. Powered By bs178.com 闽ICP备11008920号-3
闽公网安备35020302034844号