linux 正则、通配符
grep [options] regex [file...]
| 
 选项  | 
 描述  | 
| 
 -i  | 
 忽略大小写。不会区分大小写字符。也可用--ignore-case 来指定。  | 
| 
 -v  | 
 不匹配。通常,grep 程序会打印包含匹配项的文本行。这个选项导致 grep 程序只会打印不包含匹配项的文本行。也可用--invert-match 来指定。  | 
| 
 -c  | 
 打印匹配的数量(或者是不匹配的数目,若指定了-v 选项),而不是文本行本身。 也可用--count 选项来指定。  | 
| 
 -l  | 
 打印包含匹配项的文件名,而不是文本行本身,也可用--files-with-matches 选项来指定。  | 
| 
 -L  | 
 相似于-l 选项,但是只是打印不包含匹配项的文件名。也可用--files-without-match 来指定。  | 
| 
 -n  | 
 在每个匹配行之前打印出其位于文件中的相应行号。也可用--line-number 选项来指定。  | 
| 
 -h  | 
 应用于多文件搜索,不输出文件名。也可用--no-filename 选项来指定。  | 
grep bzip a*.txt 在a开头的txt文件里搜索bzip
grep -h '[-AZ]' dirlist*.txt 连字符-放在开头 表示其本身
-A3 显示后面3行 -B2 显示前面两行
[:lower:] 是 a-z [[:lower:]]就是[a-z]
grep -e a -e b abc.txt 匹配a或者e
+ ? | () 等需要使用grep -E 或者 egrep, grep不支持
通配符不止下面这几种
| 
 通配符  | 
 意义  | 
| 
 *  | 
 匹配任意多个字符(包括零个或一个)  | 
| 
 ?  | 
 匹配任意一个字符(不包括零个)  | 
| 
 [characters]  | 
 匹配任意一个属于字符集中的字符  | 
| 
 [!characters]  | 
 匹配任意一个不是字符集中的字符 ^ ?  | 
| 
 [[:class:]]  | 
 匹配任意一个属于指定字符类中的字符  | 
| 
 字符类  | 
 意义  | 
| 
 [:alnum:]  | 
 匹配任意一个字母或数字  | 
| 
 [:alpha:]  | 
 匹配任意一个字母  | 
| 
 [:digit:]  | 
 匹配任意一个数字  | 
| 
 [:lower:]  | 
 匹配任意一个小写字母  | 
| 
 [:upper:]  | 
 匹配任意一个大写字母  | 
示例
| 
 模式  | 
 匹配对象  | 
| 
 *  | 
 所有文件  | 
| 
 g*  | 
 文件名以“g”开头的文件  | 
| 
 b*.txt  | 
 以"b"开头,中间有零个或任意多个字符,并以".txt"结尾的文件  | 
| 
 Data???  | 
 以“Data”开头,其后紧接着3个字符的文件  | 
| 
 [abc]*  | 
 文件名以"a","b",或"c"开头的文件  | 
| 
 BACKUP.[0-9][0-9][0-9]  | 
 以"BACKUP."开头,并紧接着3个数字的文件  | 
| 
 [[:upper:]]*  | 
 以大写字母开头的文件  | 
| 
 [![:digit:]]*  | 
 不以数字开头的文件  | 
| 
 *[[:lower:]123]  | 
 文件名以小写字母结尾,或以 “1”,“2”,或 “3” 结尾的文件  | 
                    
                
                
            
        
浙公网安备 33010602011771号