一、grep 命令的一般格式
grep [option] pattern file
用于查找文件中字符串
二、grep option选项,如下图
三、pattern
为正则表达式,正则表达式分为普通字符与特殊字符(元字符),元字符分为基本的元字符集和扩展元字符集
1、基本的元字符集
2、扩展元字符集
四、file
可以是目录或者具体文件名,例如*.txt,.表示当前目录下,/etc表示etc目录下
五、举例
grep ^public t1.txt 在t1.txt中找到以public开始的行
grep public$ t1.txt 在t1.txt中找到以public结尾的行
grep -n ^$ t1.txt 在t1.txt中找到空行
grep -n ^.$ t1.txt 在t1.txt中找只包含一个字符的字符串
grep -n \<public t1.txt 在t1.txt中找到以<public开始的字符串 ,传递给shell为\<public,传递给grep为<public
grep -n ‘\<public’ t1.txt 在t1.txt中找到以public开始的字符串
grep -n ‘public\>’ t1.txt 在t1.txt中找到以public结尾的字符串
grep -n “\\\\” t1.txt 在t1.txt中找到包含\\的字符串
grep -n ‘\\’ t1.txt 在t1.txt中找到包含\\的字符串
grep -E go+d t1.txt 在t1.txt中找到包含go(一个或者多个o)d的字符串
grep -En 10\{2,4\}A t1.txt 在t1.txt中找到包含1(2到4个0)A的字符串
grep -En ‘11A|B‘ t1.txt 在t1.txt中找到包含11(A或者B)的字符串
grep -En net\(works\)* t1.txt 在t1.txt中找到包含net(0个或多个works)的字符串
grep -rn telnet /etc 在/etc目录下递归查找telnet
grep -rni mSamples . 在当前目录下递归查找mSamples
grep -ni mSamples *.txt 在*.txt递归查找mSamples
六、说明
grep -n ‘\\’ t1.txt ‘ ‘ 传递给grep为\\
grep -n \\ t1.txt 传递给shell为\\,传递给grep为\
grep -n "\\\\" t1.txt ""此时会传递给shell为\\\\,传递给grep为\\ (比较特殊)
grep -En 10\{2,4\}A t1.txt 或者 grep -En ‘10{2,4}A‘ t1.txt 传递给shell为10\{2,4\}A,传递给grep为10{2,4}A
r递归调用对于目录而言
E对于patten 使用了扩展元字符集
l 只列出包含字符串的文件