file1.txt—测试文件
[ root @bogon mnt]# nl file1.txt
1 linux is very much!
2 java is very much!
3 my age is :30
4 mysql is very much!
5 php is very + much!
6 C is very * linux much!
7 y
8 ips address is 192.168.1.1
9 Linux is very much!
10 C is very much linux
11 s
12 my ip addre is :192.168.85.130
13 linux is veryvery much
14 linux is veryveryvery much
15 linux is veryveryveryveryvery much
^linux 以linux开头的行
示例:
^表示以某某开头
[root@bogon mnt]# grep -E '^linux' file1.txt linux is very much!
$linux 以linux结尾的行
示例:
$表示以某某结尾
[root@bogon mnt]# grep -E 'linux!$ ' file1.txt C is very much linux!
. 匹配任意单字符
示例:
[root@bogon mnt]# grep -En '.' file1.txt 1:linux is very much! 2:java is very much! 4:mysql is very much! 5:php is very much! 6:C is very linux much! 8:C is very much linux! 9:Linux is very much! 10:C is very much linux
.+ 匹配任意多个字符
示例:
[root@bogon mnt]# grep -En '.+' file1.txt 1:linux is very much! 2:java is very much! 3:my age is :30 4:mysql is very much! 5:php is very + much! 6:C is very * linux much! 7:y 8:ips address is 192.168.1.1 9:Linux is very much! 10:C is very much linux 11:s 12:my ip addre is :192.168.85.130 13:linux is veryvery much 14:linux is veryveryvery much 15:linux is veryveryveryveryvery much
.* 匹配0个或者多个字符
示例:
[root@bogon mnt]# grep -En '.*' file1.txt 1:linux is very much! 2:java is very much! 3:my age is :30 4:mysql is very much! 5:php is very + much! 6:C is very * linux much! 7:y 8:ips address is 192.168.1.1 9:Linux is very much! 10:C is very much linux 11:s 12:my ip addre is :192.168.85.130 13:linux is veryvery much 14:linux is veryveryvery much 15:linux is veryveryveryveryvery much
[0-9a-z] 匹配[]内任意一个字符
示例:
[root@bogon mnt]# grep -En '.*[0-9a-z].*' file1.txt 1:linux is very much! 2:java is very much! 3:my age is :30 4:mysql is very much! 5:php is very + much! 6:C is very * linux much! 7:y 8:ips address is 192.168.1.1 9:Linux is very much! 10:C is very much linux 11:s 12:my ip addre is :192.168.85.130 13:linux is veryvery much 14:linux is veryveryvery much 15:linux is veryveryveryveryvery much 查询包含0-9多个数字的行 [root@bogon mnt]# grep -En '[0-9]+ ' file1.txt 3:my age is :30 11:my ip addre is :192.168.85.130
(very)+ 出现多次linux的单词
示例:
[root@bogon mnt]# grep -E '(very)+ ' file1.txt linux is very much! java is very much! mysql is very much! php is very + much! C is very * linux much! Linux is very much! C is very much linux linux is veryvery much linux is veryveryvery much linux is veryveryveryveryvery much
(very){2} very出现了2次以上的
示例:
[root@bogon mnt]# grep -En '(very){2} ' file1.txt
13:linux is veryvery much
14:linux is veryveryvery much
15:linux is veryveryveryveryvery much
包含3-5次的very
[root@bogon mnt]# grep -En '(very){3,5}' file1.txt
14:linux is veryveryvery much
15:linux is veryveryveryveryvery much
\ 转义字符 ,只用来屏蔽一个元字符的特殊含义
示例:
只查询ip地址 [root@bogon mnt]# grep -En '[0-9]+\. [0-9]+\.[0-9]+\.[0-9]+' file1.txt 11:my ip addre is :192.168.85.130
grep搜索包含特定字符的行
示例:
只在file1.txt中搜索包含linux的行
[root@bogon mnt]# grep 'linux' file1.txt linux is very much! C is very linux much! C is very much linux!
grep -c 表示包含linux字符的行在文件中共有几行
[root@bogon mnt]# grep -c 'linux' file1.txt 3
grep -n 表示包含linux字符的行具体在文件中的第几行
[root@bogon mnt]# grep -n 'linux' file1.txt 1:linux is very much! 5:C is very linux much! 6:C is very much linux!
grep -i 表示对包含linux字符的单词大小写进行忽略
[root@bogon mnt]# grep -i 'linux' file1.txt linux is very much! C is very linux much! C is very much linux! Linux is very much!
grep -v 过滤 表示在文件中不包含指定字符的行
[root@bogon mnt]# grep -v 'linux' file1.txt java is very much! mysql is very much! php is very much! Linux is very much!