linux命令学习--grep,egrep
grep -i
--ignore-case 忽略大小写
grep -e
适用于简单的正则表达式,比如搜索一个字符串中是否包含特定的关键词。例如:
grep -e 'hello' file.txt
# 将会在文件file.txt中搜索出所有包含“hello”这个关键词的行。
grep -E
适用于复杂的正则表达式,可以使用多项选择、重复和子表达式来匹配文本。例如:
grep -E '(foo|bar)baz' file.txt
#会在文件file.txt中搜索出所有包含“foobaz”或者 “barbaz” 的行。
egrep
egrep是grep的扩展,执行效果与"grep-E"相似,使用的语法及参数可参照grep指令,与grep的不同点在于解读字符串的方法。egrep是用extended regular expression语法来解读的,而grep则用basic regular expression 语法解读,extended regular expression比basic regular expression的表达更规范,且egep支持更多的元字符,即egrep使用的是拓展的正则表达式。
用于egrep和 grep -E的元字符扩展集
+
匹配一个或多个先前的字符。如:’[a-z]+able’,匹配一个或多个小写字母后跟able的串,如loveable,enable,disable等。
?
匹配零个或多个先前的字符。如:'gr?p’匹配gr后跟一个或没有字符,然后是p的行。
a|b|c
匹配a或b或c。如:grep|sed匹配grep或sed
()
分组符号,如:love(able|rs)ov+匹配loveable或lovers,匹配一个或多个ov。
grep和egrep都要通过正则表达式来筛选我们想要的东西,只能筛选文本内容,不能对目录筛选,如果想筛选目录可以通过管道把目录传过去,或者把目录存到文件里头再筛选。