grep 正则表达式
grep (Global Regular Expression Print)是一种文本搜索工具,能使用正则表达式搜索文本,并把匹配的行打印出来,egrep (Extended grep)扩展正则表达式, 语法 grep [options] PATTERN [FILE…] PATTERN(模式): 文本字符和正则表达式的起名字符组合而成匹配条件 options(参数) -i --ignore-case 忽略字母大小写 --color 高亮显示匹配的字符 -v 显示没有被模式匹配到的行 -o 只显示被模式匹配到的字符串 -A # 显示搜索到的行及后面#行的内容 -B # ………………………..前面#行的内容 -C # ………………………….前后各#行的内容 正则表达式:REGular EXPression,REGEXP 正则表达式是一种表示方式,让你可以查找匹配特定准则的文本。 grep 引号的意义 ‘ ’: 强引用,所见即所得:即将单引号内的内容原样输出,或者描述为单引号里面看到的是什么就会输出什么。单引号''是全引用,被单引号括起的内容不管是常量还是变量者不会发生替换。grep ‘$a’file 表示的时查找 ‘$a’字符 “ ”: 把双引号内的内容输出出来;如果内容中有命令、变量等,会先把变量、命令解析出结果,然后在输出最终内容来。双引号""是部分引用,被双引号括起的内容常量还是常量,变量则会发生替换,替换成变量内容。grep “$a”file 表示引用变量a,查找变量a的值 不加引号 : 不会将含有空格的字符串视为一个整体输出,如果内容中有命令、变量等,会先把变量、命令解析出结果,然后在输出最终内容来,如果字符串中带有空格等特殊字符,则不能完整的输出,需要改加双引号,一般连续的字符串,数字,路径等可以用 正则表达式由两个基本组成部队建立:一般字符和特殊字符,一般字符指没有特殊意义的字符,特殊字符常称为元字符。 元字符: : 转义符,如果元字符前面加有‘’ 就表示为其本身的意义,不再有元字符的特殊意义 . : 匹配任意单个字符 [ ] : 匹配指定范围内的任意单个字符 [^]: 匹配指定范围外的任意单个字符 字符集合 [:digit:] 表示数字集合0-9 [[:digit:]]与[0-9]的意义相同 [:lower:] 小写字母集合 [:upper:] 大写字母集合 [:punct:] 标点符号字符 [:space:] 空白格符[:blank:]空格(space)与定位(tab)字符 [:alpha:] 字母字符包括大小写 [:alnum:] 字母数字字符(包括大小写) 匹配次数字符 * : 匹配前面字符任意次,包括0 .* : 表示任意长度任意字符 ? : 匹配前面的字符一次或零次 {m,n} : 匹配其前面字符至少m次,至多n次,如果最多次数不限,n可以省略不写,如果表示至少为0次,m可以写为0,但不能不写。{1,} {0,3} 注意: ‘’ 在正则表达式中也代表有转义的意思,与bash本身的意义区别。如?在bash中表示任意一个字符,这里?表示的是次数,{} 在bash中表示命令展开,在正则表示式中{m,n}表示次数,但在扩展正则表达式中可以不用’‘来区分。 位置锚定: ^ : 锚定行首, 此字符后面的任意内容必须出现在行首 $ : … 行尾, ……………………………………………… 行尾 ^$ : 空白行 &; 或 b : 锚定词首,其后面的任意字符必须做为单词的首部出现 &; 或 b : …….词尾, ………………………………………………..尾部出现 &;word&; : 匹配整个单词 &; &; 分组: () : (alnum)* 表示把 (alnum) 做为一个整体,匹配任意次 后向引用 1 : 引用第一个左括号以及与之对应的右括号所包括的所有内容 2 : 第二个 n : 第n 个 即把前面分组的内容后面再引用 grep 命令就是使用字符或正则表达式规则来匹配文本的命令 egrep 扩展正则表达式,也grep ?e 命令效果是一样的 . [] [^] 与正则表达式的用法一样 次数匹配 * : 和正则表达式作用一样 ? : 不用加 ’’ + : 匹配其前面的字符至少一次,类似正则表达式 {1,} {m,n} : 不使用斜线 位置锚定符与正则表达式一样 分组: ( ) : 与正则表达式( ) 相比,不需要斜线 1 2 3 后向引用 或者符
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |