Loading... <ol class=" list-paddingleft-2"> <li> <p>egrep grep的使用方法</p> </li> <li> <p>正则表达式及扩展表达式简述</p> </li> <li> <p>使用事例</p> <p> </p> <p>grep egrep都是文本搜索工具,可以把符合模式的行或字符显示出来,而这些模式grep一般使用正则表达式进行匹配,而egrep使用扩展正则表达式来进行匹配的。</p> <p>grep及egrep的使用方法:</p> </li> </ol> <p> grep [option] pattern file…..</p> <p> option:</p> <p> -o:显示只显示匹配到的字符</p> <p> -v:显示与匹配模式相反的行</p> <p> -i:忽略匹配模式的大小写进行匹配</p> <p> -E:使用egrep进行匹配</p> <p> egrep [option] pattern file…..</p> <p> option</p> <p> -o:显示只显示匹配到的字符</p> <p> -v:显示与匹配模式相反的行</p> <p> -i:忽略匹配模式的大小写进行匹配</p> <p>正则表达式:</p> <p> 字符匹配</p> <p> . : 表示匹配单个任意字符</p> <p> [[:alpha:]]:表示匹配单个字母</p> <p> [[:lower:]]:表示匹配单个小写字母</p> <p> [[:upper:]]:表示匹配单个大写字母</p> <p> [[:digit:]]:表示匹配单个数字</p> <p> [[:space:]]:表示匹配单个空白字符</p> <p> [[:alnum:]]:表示匹配单个字母或数字</p> <p> 次数匹配</p> <p> *:表示匹配前一个字符的任意次</p> <p> \?:表示匹配前个一个字符一次或零次</p> <p> \{m\}:表示匹配前一个字符m次</p> <p> \{m,n\}:表示匹配前一个字符至少m次,至多n次</p> <p> \{m,\}:表示匹配前一个字符至少m次</p> <p> \{0,m\}:表示匹配前一个字符至多m次</p> <p> 注(.* 表示 匹配任意长度的任意字符)</p> <p> 位置锚定</p> <p> ^:表示锁定行首</p> <p> $:表示锁定行尾</p> <p> \<:表示锁定字母的首部</p> <p> \>:表示锁定字母尾部</p> <p> (注:^$ 表示匹配空白行)</p> <p> 分组:\(字符\):表示里面的字符组合为一个分组;我们可以用 \1 \2 …\#进行该分组内容的引用</p> <p> </p> <p> 补: \| 表示 或者 例如 a \| b a或b匹配其中一个</p> <p> \+ 表示匹配前个字符至少一次</p> <p></p> <p>扩展正则表达式</p> <p> 字符匹配</p> <p> . : 表示匹配单个任意字符</p> <p> [[:alpha:]]:表示匹配单个字母</p> <p> [[:lower:]]:表示匹配单个小写字母</p> <p> [[:upper:]]:表示匹配单个大写字母</p> <p> [[:digit:]]:表示匹配单个数字</p> <p> [[:space:]]:表示匹配单个空白字符</p> <p> [[:alnum:]]:表示匹配单个字母或数字</p> <p> 次数匹配</p> <p> *:表示匹配前一个字符的任意次</p> <p> ?:表示匹配前个一个字符一次或零次</p> <p> {m}:表示匹配前一个字符m次</p> <p> {m,n}:表示匹配前一个字符至少m次,至多n次</p> <p> {m,}:表示匹配前一个字符至少m次</p> <p> {0,m}:表示匹配前一个字符至多m次</p> <p> +:表示匹配前个字符至少一次</p> <p> </p> <p> 位置锚定</p> <p> ^:表示锁定行首</p> <p> $:表示锁定行尾</p> <p> \<:表示锁定字母的首部</p> <p> \>:表示锁定字母尾部</p> <p> 分组</p> <p> (字符):表示里面的字符作为一个组合;用 \1 \2 …\#来引用</p> <p></p> <p>事例</p> <p> 事例一:</p> <p> 显示/etc/passwd文件中其默认shell为非/sbin/nologin的用户</p> <p><img src="//cto.wang/usr/uploads/2016/07/20160703180432-40.gif" /> <img src="//cto.wang/usr/uploads/2016/07/20160703180432-90.png" title="1437921083953787.png" alt="XU~R@8~_IU@TBRS~0TY_66L.png" /></p> <p> 事例二:</p> <p> 显示/etc/rc.d/rc.sysinit文件中,以#开头,后面跟至少一个空白字符,而后又有至少一个非空白字符的行</p> <p></p> <p> <img src="//cto.wang/usr/uploads/2016/07/20160703180432-36.png" title="1437921390792983.png" alt="V1]}RZ1QL3PBP_WNI]IG]_5.png" /> 事例三:</p> <p> 写一个模式,能匹配合理的ipv4地址(1.0.0.1-239.255.255.255)</p> <p>[1-9] | [1-9][0-9] | 1[0-9][0-9] | 2[1-3][0-9]\.[0-9] | [1-9][0-9] | 1[0-9][0-9] | 2[1-4][0-9] | 25[0-5]\.[0-9] | [1-9][0-9] | 1[0-9][0-9] | 2[1-4][0-9] | 25[0-5]\.[1-9] | [1-9][0-9] | 1[0-9][0-9] | 2[1-4][0-9] | 25[0-5]</p> <p> </p> 最后修改:2021 年 12 月 10 日 10 : 53 AM © 允许规范转载 赞赏 如果觉得我的文章对你有用,请随意赞赏 赞赏作者 支付宝微信