Linux 命令grep

时光总嘲笑我的痴心妄想 提交于 2020-01-25 08:22:59

grep options

-i  --ignore case忽略大小写

-v --invert-match反转匹配

-c  --count 统计匹配数值

-l --files-with-matches 输出包含关键字的文件

-L --files-without-matches 输出不包含关键字的文件

-n --line-number 打印行号

通配符

^ $ . [ ] { } - ? * + ( ) | \

^ $  锚定位符

可以理解为锚点,就是以^开始,以$结束的匹配,例如 grep ‘^zip$’ abc.txt  只会匹配到一行中的zip关键字

.    点表达式

点的用法匹配aa文件中的单词第三个字母是j最后一个字母是r  例如 grep -i '^..j.r$' aa.txt 

[] 括号表达式

括号中的关键字只要匹配到一个字母即可,例如  grep '[ab]zip' aa.txt  可以匹配到  azipxxx,bzipyyy等

和^组合使用 grep '[^ab]zip' aa.txt  就是反向输出结果匹配到 bunzip2 ,gunzip ,funzip

- 破折号

想要匹配到文件中以大写字母开头的关键词,可以这样表达 grep -h '^[ABCDEFGHIJKLMNOPQRSTUVWXZY]' dirlist*.txt

简化一下可以这样写 grep -h '^[A-Y]' dirlist*.txt ,这就是破折号的作用

? 匹配一个元素零次或者一次

*  匹配一个元素零次或者n次

+ 匹配一个元素一次或者n次

{} 匹配一个元素具体的次数例如 {n,m} {n,} {,m}  例如批量创建文件 touch {0,9}.txt 

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!