1.作用
Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来。grep全称是GlobalRegularExpression Print,表示全局正则表达式版本,它的使用权限是所有用户。
2.格式
grep [参数]搜索的内容 搜索的文件
3.主要参数
-a 不要忽略二进制数据
-A<显示列数>除了显示符合范本样式的那一行之外,并显示该行之后的内容
-b 在显示符合范本样式的那一行之外,并显示该行之前的内容
-c 计算符合范本样式的列数
-C<显示列数>或-<显示列数> 除了显示符合范本样式的那一列之外,并显示该列之前后的内容
-d<进行动作>当指定要查找的是目录而非文件时,必须使用这项参数,否则grep命令将回报信息并停止动作
-e<范本样式>指定字符串作为查找文件内容的范本样式
-E 将范本样式为延伸的普通表示法来使用,意味着使用能使用扩展正则表达式
-f<范本文件>指定范本文件,其内容有一个或多个范本样式,让grep查找符合范本条件的文件内容,格式为每一列的范本样式
-F 将范本样式视为固定字符串的列表
-G 将范本样式视为普通的表示法来使用
-h 在显示符合范本样式的那一列之前,不标示该列所属的文件名称
-H 在显示符合范本样式的那一列之前,标示该列的文件名称
-i 胡列字符大小写的差别
-l 列出文件内容符合指定的范本样式的文件名称
-L 列出文件内容不符合指定的范本样式的文件名称
-n 在显示符合范本样式的那一列之前,标示出该列的编号
-q 不显示任何信息
-R/-r 此参数的效果和指定“-drecurse”参数相同
-s 不显示错误信息
-v 反转查找
-w 只显示全字符合的列
-x 只显示全列符合的列
-y 此参数效果跟“-i”相同
-o 只输出文件中匹配到的部分
4.遇到的问题
4.1 当搜索条件串包含 | (通道符)的时,系统会抛出命令格式错误。
[root@esbtest test]# grep |123 test
-bash: 123: command not found
Usage: grep [OPTION]... PATTERN [FILE]...
Try `grep --help' for more information.
解决方法:使用''或""将搜索条件包起来。
[root@esbtest test]# grep '111|222' test
111|222
4.2 当搜索条件以 - 符号 开头时,搜索会一直进行。
[root@esbtest test]# grep 456 test
-456
[root@esbtest test]# grep -456 test
解决方法:使用-e 参数,将查找字符串整个作为查找文件的范本。
[root@esbtest test]# grep 456 test
-456
[root@esbtest test]# grep -e -456 test
-456