云网牛站
所在位置:首页 > Linux命令 > Linux grep命令示例

Linux grep命令示例

2017-10-22 21:15:39作者:Linux编辑稿源:topspeedsnail

grep(global regular expression print)是Linux下查找匹配字符串的工具,非常强大。grep在查找指定字符串时,如果找到会显示包含查找字符串的行。

 

1、在单个文件中查找匹配字符串

下面命令在/etc/passwd文件中查找“root”:

$ grep root /etc/passwd

Linux grep命令示例

 

2、在多个文件中查找匹配字符串

$ sudo grep root /etc/passwd /etc/shadow /etc/gshadow

Linux grep命令示例

 

3、列出包含指定字符的文件

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

Linux grep命令示例

 

4、在文件中查找匹配字符串,并显示相应的行号

$ grep -n root /etc/passwd

Linux grep命令示例

 

5、输出所有不匹配的行

$ grep -v root /etc/passwd

daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin

bin:x:2:2:bin:/bin:/usr/sbin/nologin

sys:x:3:3:sys:/dev:/usr/sbin/nologin

sync:x:4:65534:sync:/bin:/bin/sync

games:x:5:60:games:/usr/games:/usr/sbin/nologin

man:x:6:12:man:/var/cache/man:/usr/sbin/nologin

lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin

mail:x:8:8:mail:/var/mail:/usr/sbin/nologin

news:x:9:9:news:/var/spool/news:/usr/sbin/nologin

uucp:x:10:10:uucp:/var/spool/uucp:/usr/sbin/nologin

proxy:x:13:13:proxy:/bin:/usr/sbin/nologin

www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin

nobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin

libuuid:x:100:101::/var/lib/libuuid:

syslog:x:101:104::/home/syslog:/bin/false

messagebus:x:102:106::/var/run/dbus:/bin/false

usbmux:x:103:46:usbmux daemon,,,:/home/usbmux:/bin/false

dnsmasq:x:104:65534:dnsmasq,,,:/var/lib/misc:/bin/false

pulse:x:115:122:PulseAudio daemon,,,:/var/run/pulse:/bin/false

mm:x:1000:1000:mm,,,:/home/mm:/bin/bash

vboxadd:x:999:1::/var/run/vboxadd:/bin/false

 

6、使用^匹配行开始字符

下面例子匹配passwd文件中以root开始的行:

$ grep ^root /etc/passwd

Linux grep命令示例

 

7、使用$匹配行结尾字符

下面例子匹配passwd文件中以bash结束的行:

$ grep bash$ /etc/passwd

Linux grep命令示例

 

8、递归的搜索目录中所有文件

$ sudo grep -r root /etc/

Linux grep命令示例

 

9、搜索文件中的空行

$ grep -n ^$ /etc/profile

3:

19:

22:

-n选项显示行号

 

10、忽略大小写

$ grep -i RooT /etc/passwd

Linux grep命令示例

 

11、匹配多个字符串

$ grep -e root -e www-data /etc/passwd

Linux grep命令示例

 

12、使用匹配模式文件

创建匹配模式文件,pattern文件内容:

$ cat pattern 

^root

www-data

false$

使用grep匹配:

$ grep -f pattern /etc/passwd

Linux grep命令示例

 

13、统计匹配的行数

统计上面例子中配置的行数:

$ grep -c -f pattern /etc/passwd

Linux grep命令示例

 

14、显示匹配行上下文

$ grep -B 4 root /etc/passwd  // 匹配行前4行内容

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

$ grep -A 4 root /etc/passwd  // 匹配行后4行内容

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

daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin

bin:x:2:2:bin:/bin:/usr/sbin/nologin

sys:x:3:3:sys:/dev:/usr/sbin/nologin

sync:x:4:65534:sync:/bin:/bin/sync

$ grep -C 4 root /etc/passwd  // 匹配行前后各4行内容

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

daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin

bin:x:2:2:bin:/bin:/usr/sbin/nologin

sys:x:3:3:sys:/dev:/usr/sbin/nologin

sync:x:4:65534:sync:/bin:/bin/sync

 

15、统计文件总行数

$ grep -c ".*" filename

Linux grep命令示例

 

相关主题

Linux Bash命令示例:字符串相关

Linux命令子频道
精选文章
热门文章