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命令操作练习
1 2 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字符串的文件
1 2 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关键字的行
1 2 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关键字的行
1 2 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字符串行的数量
1 2 3 4 5
| [root@linux-node1 /] 2
[root@redis ~] 4
|
03.grep综合使用
1 2 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__