grep

来源:互联网 发布:淘宝账号申请 编辑:程序博客网 时间:2024/06/09 20:09


^只匹配行首  中括号表示内反向选择$只匹配行尾*一个单字符后紧跟*,匹配0个或多个此单字符[]匹配[]内字符,可以是一个单字符,也可以是字符序列。可以使用 - 表示[]内字符序列范围,如用[1-5]代替[12345]\用来屏蔽一个元字符的特殊含义。因为有时在shell中一些元字符有特殊含义。\可以使其失去应有含义。.匹配任意单字符pattern\{n\}用来匹配前面pattern出现次数。n为次数pattern\{n,\}含义同上,但次数最少为npatter\{n,m\}

含义同上,但pattern出现次数在n与m之间


数字[0-9] 字母[A-Za-z]  小写字母[a-z]  大写字母[A-Z]

 非数字[^0-9]  非字母[^A-Za-z] 非小写字母[^a-z] 非大写字母[^A-Z]


[::alnum] : 数字字符[:digit:] : 数字字符[:punct:] : 标点符号字符[:alpha:] : 字母字符[:graph:] : 非空格字符

 [:space:] : 空格字符

[:blank:] : 空格与定位字符[:lower:] : 小写字母字符[:upper:] : 大写字母字符[:cntrl:] : 控制字符[:print:] : 可显示的字符

[:xdigit:] : 16进制数字


example:

数据文件为文件是1.txt  

grep -n  '^aab' 1.txt                                                                                  //行首为 aab

grep -n  '^[^A-Za-z]'  1.txt                                                                        //行首不为 字母

grep -n  '[^a]bb'    1.txt                                                                             // 查bb前一个字符不为a的bb

grep -n '\a'     1.txt                                                                                     //行尾为a

grep -n 'a..b'  1.txt                                                                                     //匹配这样一个字符串 开头为a 结尾为b 长度为4  akmb aabb

grep -n 'a*'   1.txt 或 grep -n 'aa*' 1.txt                                                  //匹配一个或者一个以上全是a的字符串

grep -n 'aaa*' 1.txt                                                                                    //匹配两个以上 全是a的字符串

grep -n 'aaaa*' 1.txt   或者 grep -n 'a\{3\}'                                             //三个及以上  全是a的字符串
grep -n 'a\{1,3\}b'                                                                                      //匹配这样字符串,a出现1-3次 b出现在最后。  ab aab aaab

grep -n 'a*b'  1.txt                                                                                     //匹配所有包含字符a ,字符b  且a在b前面的行  ajljljoihinjnkjnnkoijweoj  ewjojrojkb  





原创粉丝点击