01.grep作用
**更多详细内容参考:**https://www.cnblogs.com/xiaonq/p/11969744.html
 1.1 grep作用
- grep命是 文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来 。
- grep家族总共有三个成员构成:grep、egrep、fgrep
- grep 是linux中最为常用的三大文本(awk,sed,grep)处理工具之一
 1.2 grep常用参数
| 选项 | 含义 | 
| -v | 排除 | 
| -n | 显示行号 | 
| -E | 支持扩展正则表达式(与egrep作用相同) | 
| -i | ==ignore-case忽略大小写 | 
| -w | ==word以单词格式查找 | 
| -c | 统计匹配上的行数(统计包含xxx的有多少行) | 
| -o | 显示匹配过程 | 
 1.3 grep命令操作练习
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 
 | grep -c "test" dks.txt
 
 
 grep -o "test" dks.txt |wc -l
 
 
 grep -n "test" dks.txt
 
 
 grep -i "tEst" dks.txt
 
 
 grep "test[53]" dks.txt
 
 
 grep "^[^test]" dks.txt
 
 
 grep "^[mM].*" dks.txt
 
 
 grep "K..D" dks.txt
 
 
 grep "[A-Z]9D" dks.txt
 
 
 grep "T\{2,\}" dks.txt
 
 
 grep "T\{2,6\}" dks.txt
 
 
 grep -n "^$" dks.tx
 
 
 grep -vE "^$|#" dks.txt
 
 
 grep -ra -E "db|config|sql" /data
 
 
 ifconfig eth0 |grep "inet "|grep -E "\<([0-9]{1,3}\.?){4}" -o|head -1
 
 | 
 02.grep常用方法
 2.1 查找包含root字符串的文件
- 1. grep -n ‘root’ /etc/passwd :查找/etc/passwd下包含 root字符串的文件
| 12
 3
 
 | [root@linux-node1 /]1:root:x:0:0:root:/root:/bin/bash
 10:operator:x:11:0:operator:/root:/sbin/nologin
 
 | 
 2.2 查找不包含root关键字的行
- 2. grep -Ev “root|nologin” /etc/passwd  :查找不包含root和nologin关键字的行
| 12
 3
 4
 
 | [root@linux-node1 /]sync:x:5:0:sync:/sbin:/bin/sync
 shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
 halt:x:7:0:halt:/sbin:/sbin/halt
 
 | 
 2.3 包含root关键字的行
- 3.grep “root” /etc/{passwd,shadow} :查找/etc/passwd和/etc/shadow文件中包含root关键字的行
| 12
 3
 
 | [root@linux-node1 /]/etc/passwd:root:x:0:0:root:/root:/bin/bash
 /etc/passwd:operator:x:11:0:operator:/root:/sbin/nologin
 
 | 
 2.4 统计文件包含root字符串行的数量
- 4.grep -c root /etc/passwd  :统计/etc/passwd文件中包含root字符串行的数量
| 12
 3
 4
 5
 
 | [root@linux-node1 /]2
 
 [root@redis ~]
 4
 
 | 
 03.grep综合使用
| 12
 3
 4
 5
 6
 7
 
 | grep -E -v "^$|^#" /etc/nginx/nginx.conf          seq 1 20 |grep -m 5 -E '[0-9]{2}'
 seq 1 20 |grep -c -E '[0-9]{2}'
 echo "a bc de" |xargs -n1 |grep '^b'
 echo "a ab abc abcd abcde" |xargs -n1 |grep -n 'de$'
 grep -r 'sshd' /etc --include *.conf
 seq 41 45 |grep -E '4[12]'
 
 | 
__END__