Linux grep
基本用法
grep str file在文件file中查找字符串str
grep -n str file使用-n选项查找字符串str
常用选项
-i 不区分大小写(默认是区分大小写的)
-n 输出该字符串所在行的行号
--color 查找到的字符串高亮显示(ubuntu默认高亮)
-c 统计符合条件的总行数
-o 只输出匹配到的关键字,会将一行中匹配到的多个关键字分行打印,比如某一行匹配到了2个结果就会打印两行
-Bn before,符合条件所在行之前的n行,必须有n
-An after,符合条件所在行之后的n行,必须有n
-Cn context,-A-B的结合
-w word 搜索的字符串作为一个独立的单词才会被匹配到
-v 搜素不包含某个字符串的行
-e 同时匹配多个目标,多个目标之间存在“或”关系,即匹配任意一个都算成功,例如grep -e abc -e xyz file在file文件中如果某一行包含abc或xyz都可以匹配成功
-q quiet 无论匹配到还是没有匹配到都不会输出任何信息,可以使用echo $?查看匹配结果,如果输出0则表示匹配到了,如果输出1则表示没有匹配到
-P 使用兼容perl的正则引擎
-E使用扩展正则表达式
grep扩展
grep支持基本正则表达式
egrep支持扩展正则表达式,相当于grep -E
fgrep不支持正则表达式,只能匹配写死的字符串,但是匹配速度非常快
如果要查找特殊字符需要使用转义字符\,例如grep "\-" file在file文件中查找包含-的行
传递输入或输出
可以使用管道符|传递输入给grep或者将grep的输出传给其他命令
ls | grep txt查找当前文件夹下,文件名包含txt的文件
ls | grep txt | sort对当前文件夹下,文件名包含txt的文件进行排序
ls | grep txt | xargs rm将当前文件夹下,文件名包含txt的文件删除
浙公网安备 33010602011771号