grep与正则表达式01-基础知识
本文旨在学习grep命令,基本/扩展正则表达式 1. grep命令 grep:根据模式搜索文本,并将符合的文本显示出来。本身的意义就是做部分匹配的。 pattern(模式):文本字符和正则表达式的元字符组合而成匹配条件。 grep常用选项: -o:只显示被模式匹配到的字符串 -n:在匹配到的字符串行首显示行号 -v:显示没有被模式匹配到的字符串 -i:表示忽略字符大小写 -c:计算匹配到的字符串的次数 -w:只显示全字符符合的行 -x:只显示全行符合的行 -q:静默模式,不输出任何信息 -E:使用扩展的正则表达式 -A#(数字):显示被匹配到的行和后面的#行 -B#(数字):显示被匹配到的行和前面的#行 -C #(数字):显示上下文
2. 基本的正则表达式REGularEXEperssionREGEXE 元字符: . :匹配任意单个字符 [] :匹配指定范围内的任意单个字符 [^]:匹配指定范围外的任意单个字符 字符集合: [:digit:]数字 [:lower:]小写字母 [:upper:]大写字母 [:alpha:]所有字母 [:alnum:]所有数字和字母 [:space:]空白字符 [:punct:]标点符号 匹配次数(贪婪模式): * :匹配其前面的字符任意次(也可以是0次) .*:任意长度任意字符 ?(反斜线做转义):匹配其前面的字符1次或者0次。 {m,n}:匹配其前面的字符至少m次,至多n次 {1,}:表示至少1次 {0,3}:最多3次 位置锚定: ^ :锚定行首,此字符后面的内容必须出现在行首 $ :锚定行尾,此字符前面的任意内容必须出现在行尾 ^$:匹配空行 ^[[:space:]]*$ :空白行 &;或者b:锚定词首,其后面的任意字符必须作为单词的首部出现 &;或者b:锚定词尾,其前面的任意字符必须作为单词的尾部出现 &;root&;或者brootb:表示必须是root整个单词出现 注意:b有时候会显示不准确,建议尽量显示&;,&;。 分组: () (ab)*:后向引用,把ab作为一个整体,可以出现0次,1次或者任意次。 1:引用第一个左括号与之对应的右括号所包含的所有内容 2: 3: 3.扩展的正则表达式 字符匹配(与基本的正则表达式相同) .:匹配任意单个字符 []:匹配指定范围内的任意单个字符 [^]:匹配指定范围外的任意单个字符 次数匹配: * .* :匹配任意长度的任意字符 ? :匹配其前面的字符1次或者0次 + :匹配其前面字符至少一次,相当于{1,}。?和+组合相当于* {m,n}:做次数匹配。扩展正则表达式不用加反斜线。 例:取一个路径的基名 [root@station126~]#echo/etc/sysconfig/network|egrep-o'[[:alnum:]]+/?$' network [root@station126~]#echo/etc/sysconfig/|egrep-o'[[:alnum:]]+/?$' sysconfig/ 注意:体会?这里的妙用。 位置锚定:(与基本的正则表达式相同) ^ :锚定行首 $ :锚定行尾 &;或b:锚定词首 &;或b:锚定词尾 分组: () 1,2,3,…….后项引用 | :或者(or的意思) a|b:a或者b C|cat:C或者cat 4. 练习题 http://www.52php.cn/article/p-wqjwdawy-wk.html (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |