欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

Linux之grep命令

程序员文章站 2022-04-21 18:14:58
1.grep的作用 Global search regular expression(RE) ,简称grep;是一种强大的文本搜索工具,可以使用正则表达式搜索文本,并把匹配打印出来。 2.grep常用参数 -v #排除,取 -n #显示行号 -E #支持扩展正则表达式(与egrep作用相同) -i ......

1.grep的作用

global search regular expression(re) ,简称grep;是一种强大的文本搜索工具,可以使用正则表达式搜索文本,并把匹配打印出来。

 

2.grep常用参数

-v    #排除,取
-n    #显示行号        
-e    #支持扩展正则表达式(与egrep作用相同)
-i    #==ignore-case忽略大小写
-w    #==word以单词格式查找
-c    #统计匹配上的行数(统计包含xxx的有多少行)
-a    #==after 匹配行的后几行
-b    #==before 匹配行的前几行 
-c    #匹配行的前后几行
-o    #显示匹配过程
-r    #在目录下递归的在所有文件中查找需要的内容
-s   #不显示不存在或无匹配文本的错误信息
-l   #查询文件时只输出包含匹配文本的错误信息
-h   #查询文件时不显示文件名

 

3.grep命令操作练习

(1)在 dks.txt 文件中匹配上 test 的行数
grep -c "test" dks.txt
 
(2)统计在 dks.txt 文件中,test 字符串出现的次数
grep -o "test" dks.txt |wc -l

 

(3)打印 test 的行及行号
grep -n "test" dks.txt

 

(4)不区分大小写查找 test 所有行
grep -i "test" dks.txt

 

(5)匹配以字符 test 开头,接 5 或 3 的行
grep "test[53]" dks.txt

 

(6)显示输出行首不是 test 的行
grep "^[^test]" dks.txt

 

(7)匹配 m 或 m 开头的行
grep "^[mm].*" dks.txt

 

(8)匹配 k 和 d,并且 k 和 d 中间有三个任意字符
grep "k..d" dks.txt

 

(9)匹配大写字母,紧跟 9d 的字符行
grep "[a-z]9d" dks.txt
 
(10)打印 t 字符连续出现 2 次以上的行
grep "t\{2,\}" dks.txt

 

(11)打印 t 字符连续出现 2 次至 6 次之间的行
grep "t\{2,6\}" dks.txt

 

(12)打印空行所在的行号
grep -n "^$" dks.tx
 
(13)不匹配文件中的#号和空行
grep -ve "^$|#" dks.txt

 

(14)在/data 目录下,匹配文件中包含 db 或者 config 或者 sql 的文件
grep -ra -e "db|config|sql" /data

 

(15)匹配 ip 地址
ifconfig eth0 |grep "inet "|grep -e "\<([0-9]{1,3}\.?){4}" -o|head -1