Linux实用命令之(grep)
作用:
grep筛选器,进行对文件中关键字的筛选。(以正则表达式的模式)。
语法:
grep -参数 关键字 文件
参数
-c :只输出匹配模式的行数。
-h :只显示匹配的行,不显示文件名。
-i :忽略匹配时的大小写。
-l :只显示文件名列表。
-n :显示匹配的行及其行号。
-r :显示文件所在目录即路径。
-v :输出所有不匹配的行。
-e exp : 指定该选项的表达式,可以多次使用。
-f file :指定规则文件,其内容含有一个或多个规则样式,让grep查找符合规则条件的文件内容,格式为每行一个规则样式。
-E :将样式为延伸的正则表达式来使用。
-w :匹配整个单词。
-r :明确要求搜索子目录。
-d skip :忽略子目录。
-o :只打印匹配行的匹配部分,每个这样的部分在单独的输出行上。
\ :忽略正则表达式中特殊字符的原有含义。
[ ]:单个字符,如[A]即A符合要求。
[ - ]:范围,如[A-Z],即A、B、C一直到Z都符合要求。
.:所有的单个字符。
*:所有字符,长度可以为0。
-A n : 除了显示符合范本样式的那一行之外,并显示该行之后n行。
-B n : 除了显示符合范本样式的那一行之外,并显示该行之前n行。
-C n : 除了显示符合范本样式的那一行之外,并显示该行之前以及之后n行。
示例
在这里创建里一个2.txt的文件,并在文件中输入了一下内容
[root@localhost ~]# cat 2.txt
1、Hello word
2、this is very good
3、出师表
4、出师表(诸葛亮)
诸葛亮住在茅草房,
刘备曾三顾茅庐求他出山给他作军师。
见面第一句就是hello!
dijun不是十五万,
Helle 哈哈哈
very very good
刘备在白帝城病故。
下面用grep命令来查找文本(常用的几种操作)。
1、查找"2.txt"
文件中包含"刘备"
关键字符串的行。
[root@localhost ~]# grep 刘备 2.txt
2、通过正则表达式查找文件2.txt
中包含的数字
[root@localhost ~]# grep -E [0-9] 2.txt
3、查找文件2.txt
中不包含"刘备"
字符串的行:
[root@localhost ~]# grep -v 刘备 2.txt
4、查找文件2.txt
中含有"诸葛亮"
字符串的行以及它前面的3行
[root@localhost ~]# grep 诸葛亮 -B 3 2.txt
5、查找文件2.txt
中含有"诸葛亮"
字符串的行以及它后面的3行。
root@localhost ~]# grep 诸葛亮 -A 3 2.txt
5、查找文件2.txt
中含有"4."
字符串的行以及它前后3行
[root@localhost ~]# grep 4 -C 3 2.txt
6、查找文件2.txt
中含有"诸葛亮"
字符串的的行数
查找文件`2.txt`中含有`"4."`字符串的行以及它前后3行
7、查看包含刘备
关键字的文件。
[root@localhost ~]# grep -l 刘备 *