⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 00000005.htm

📁 一份很好的linux入门资料
💻 HTM
📖 第 1 页 / 共 2 页
字号:
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;合於&nbsp;Regexp&nbsp;``[Tt]he''的字串如下(粗体字标示)&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;``One&nbsp;is&nbsp;red,&nbsp;and&nbsp;the&nbsp;other&nbsp;is&nbsp;white.''&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;合於&nbsp;Regexp&nbsp;``\&lt;[Tt]he\&gt;''却仅有(粗体字标示)&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;``One&nbsp;is&nbsp;red,&nbsp;and&nbsp;the&nbsp;other&nbsp;is&nbsp;white.''&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;因同时使用``&nbsp;\&lt;''及``&nbsp;\&gt;''&nbsp;限制合於&nbsp;Regexp&nbsp;``[Tt]he''的字串,&nbsp;必须&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;紧接於字首及字尾之间;&nbsp;故&nbsp;``other''中的子字串&nbsp;``the''并不合於这个&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Regular&nbsp;Expression.&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;o&nbsp;[注&nbsp;:]&nbsp;\&lt;,&nbsp;\&gt;&nbsp;这二个特殊字元,&nbsp;并不是很通用.&nbsp;请参考&nbsp;Appendix&nbsp;A&nbsp;中的&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;附表.&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;o&nbsp;\(&nbsp;...&nbsp;)\&nbsp;於&nbsp;Regular&nbsp;Expression&nbsp;中使用&nbsp;``&nbsp;\(''``{&nbsp;\)}''来括住一部&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;分的&nbsp;Regular&nbsp;Expression;&nbsp;其後可用&nbsp;``&nbsp;\1'''来表示第一次被``&nbsp;\(''&nbsp;``&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\)''&nbsp;括住的部份.&nbsp;若&nbsp;Regular&nbsp;Expression&nbsp;中使用了数次``&nbsp;\(''&nbsp;``&nbsp;\)''&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;来括住不同的部分,&nbsp;则依次使用&nbsp;``\1'',&nbsp;``&nbsp;\2'',&nbsp;``&nbsp;\3''&nbsp;,...(最多可&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;用到&nbsp;``&nbsp;\9'')来&nbsp;表示之前括住的&nbsp;Regular&nbsp;Expression.&nbsp;其用法如下&nbsp;:&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;o&nbsp;[用法一.]&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+&nbsp;例如:&nbsp;欲表示像``aa'',``bb'',``cc'',...``zz''&nbsp;等字串.&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;使用&nbsp;Regexp&nbsp;``[a-z]''则表示任一个小写的英文字母.&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;使用&nbsp;Regexp&nbsp;``[a-z][a-z]''则表示二个任意的小写英文字母.&nbsp;它除&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;表示&nbsp;``aa'',``bb'',``cc'',...``zz''等字串外,&nbsp;也可表示``ab'',&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;``ac'',``ad'',...等字串(这不是题意所要求的字串).&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;这时可以``&nbsp;\(''&nbsp;``&nbsp;\)''&nbsp;来括住第一个&nbsp;``&nbsp;[a-z]''&nbsp;(Regular&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Expression&nbsp;解译的程式,&nbsp;会暂时记录实际找寻&nbsp;到的英文字母).&nbsp;之&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;後,&nbsp;便可以&nbsp;Regexp&nbsp;``\1''&nbsp;来指定适才被记&nbsp;录下的英文字母即为所&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;要找寻字串的第二个字元.&nbsp;故正确的表示法如下&nbsp;:&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Regexp&nbsp;``\([a-z]\)\1''&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+&nbsp;例如&nbsp;:&nbsp;欲表示像&nbsp;``789w987'',&nbsp;``abcwcba'',&nbsp;``theweht'',....等&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;具对称性&nbsp;的字串.(该字串的特徵是&nbsp;``w''之前後三个字元相互对称)&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;该类字串的表示法如&nbsp;下&nbsp;:&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Regexp&nbsp;``\(.\)\(.\)\(.\)w\3\2\1&quot;&nbsp;Regexp中``.''表示任意一个&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;字元.&nbsp;因字元``w''之前出现的三个字元并无&nbsp;任何限制,&nbsp;故可用&nbsp;``&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;...''表之.&nbsp;但每个``&nbsp;.''分别用&nbsp;``&nbsp;\('',``&nbsp;\)''&nbsp;括住,&nbsp;之後便可&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;使用&nbsp;``&nbsp;\1'',&nbsp;``&nbsp;\2'',&nbsp;``&nbsp;\3''&nbsp;分别代表将来实际匹配到的前三个&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;字元.&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;o&nbsp;用法二.&nbsp;进行字串找寻并置换(Replace)时,&nbsp;若将被置入的新字串不是一个&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;固定的字串,&nbsp;与被找到的原字串有关时(见下例说明).&nbsp;此时,&nbsp;可先以&nbsp;\(&nbsp;\)&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;来括住一部分的Regular&nbsp;Expression;&nbsp;再於将被新置入的字串中使用``&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\1'',&nbsp;``&nbsp;\2'',...&nbsp;来表示当时被找到的字串(或其子字串).&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+&nbsp;例&nbsp;:&nbsp;欲找出档案中具有&nbsp;``prog12.c'',&nbsp;``prog9.c'',&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;``prog832.c'',...&nbsp;等式样的字串,&nbsp;并将其置换成(以上列三个字串为&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;例)&nbsp;``[note&nbsp;12]'',&nbsp;``[note&nbsp;9]'',&nbsp;``[note&nbsp;832]''.&nbsp;在这例子&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;中,&nbsp;因事先不知道所找寻到的字串(prog数字.c)中的&nbsp;数字&nbsp;为何,&nbsp;故&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;无法事先决定应换成什麽新字串.&nbsp;合於本例所要找寻的字串其&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Regular&nbsp;Expression&nbsp;为&nbsp;:&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Regexp&nbsp;``prog[0-9][0-9]*\.c''&nbsp;上式中&nbsp;``[0-9][0-9]*''&nbsp;表一位&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;或一位以上的阿拉伯数字,&nbsp;因&nbsp;执行前并不知道该部分实际会匹配什麽&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;数值,&nbsp;故找到的字串将来应置换&nbsp;成什麽,&nbsp;事前无法指定.&nbsp;这情况,&nbsp;也&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;可用``&nbsp;\('',``&nbsp;\)''&nbsp;来括住&nbsp;``[0-9][0-9]*&nbsp;'',&nbsp;在置换的新字串&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;中再以&nbsp;\1&nbsp;表示找寻时实际匹配到的数字.&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;读者可编辑一资料档,&nbsp;再以sed执行下列命令,&nbsp;观察其执行结果.&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$sed&nbsp;-e&nbsp;'s/&nbsp;prog\([0-9][0-9]*\)\.c/[&nbsp;note&nbsp;\1]/g'&nbsp;资料档名&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;o&nbsp;\{&nbsp;数字,&nbsp;数字\}&nbsp;一种於&nbsp;Regular&nbsp;Expression&nbsp;中形容其前的字元或字元&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;集合出现次数的表示法.&nbsp;其型态与用法如下&nbsp;:&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;o&nbsp;\{下限数字,&nbsp;上限数字\}&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;例如&nbsp;:&nbsp;Regexp&nbsp;&quot;[0-9]\{2,4\}&quot;用以表示2到4位的阿拉伯数字.&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;o&nbsp;{&nbsp;数字}&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;例如&nbsp;:&nbsp;Regexp&nbsp;``ax\{99\}''&nbsp;用以表示一个&nbsp;``a''&nbsp;之後接上99个&nbsp;``x''&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;所组成的字串.&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;o&nbsp;\{下限数字,&nbsp;\}&nbsp;例如&nbsp;:&nbsp;Regexp&nbsp;``ax\{2,\}''&nbsp;用以表示一个&nbsp;``a''&nbsp;之後&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;接上2个或更多的&nbsp;``x''所组成的字串.&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;*&nbsp;[+]&nbsp;形容其前的字元或字元集合出现一次或一次以上(注三).&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;例如&nbsp;:&nbsp;Regexp&nbsp;``[0-9]+''&nbsp;用以表示一位或一位以上的数字.&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;*&nbsp;[?]&nbsp;形容其前的字元或字元集合可出现一次或不出现(注三).&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;o&nbsp;[例如&nbsp;:]&nbsp;Regexp&nbsp;``[+-]?[0-9]+''&nbsp;表示数字(一位以上)之前可出现一个正&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;负号&nbsp;或不出现正负号.&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;*&nbsp;[(...)]&nbsp;用以括住一群字元,且将之视成一个group(见下面说明)(注三)&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;o&nbsp;例如&nbsp;:&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Regexp&nbsp;``12+''&nbsp;表示字串&nbsp;&quot;12&quot;,&quot;122&quot;,&quot;1222&quot;,&quot;12222&quot;,...&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Regexp&nbsp;``(12)+''&nbsp;表示字串&nbsp;&quot;12&quot;,&quot;1212&quot;,&quot;1212&quot;,&quot;1212&quot;....&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;上式中字串&nbsp;``12''以(&nbsp;)括住,整个视为一个group,&nbsp;故被重覆符号``+''&nbsp;所形容&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;的是``12''而非&nbsp;``2'',&nbsp;重复出现的也是&nbsp;``12''.&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;*&nbsp;[|]&nbsp;表示逻辑上的&nbsp;&quot;or&quot;&nbsp;(注三)&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;o&nbsp;例如&nbsp;:&nbsp;Regexp&nbsp;``Oranges?|apples?|water''&nbsp;可用以表示字串&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;``Orange'',&nbsp;``Oranges''&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;或&nbsp;``apple'',&nbsp;``apples''&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;或&nbsp;``water''&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;o&nbsp;注三&nbsp;:&nbsp;上列&nbsp;+&nbsp;,&nbsp;?,&nbsp;(...),&nbsp;|&nbsp;等用法,&nbsp;为&nbsp;Extended&nbsp;Regular&nbsp;Expression&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;中新增列的用法.&nbsp;awk&nbsp;及&nbsp;egrep&nbsp;中所使用的&nbsp;Regular&nbsp;Expression&nbsp;即为&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Extended&nbsp;Regular&nbsp;Expression.&nbsp;但&nbsp;vi,&nbsp;sed,&nbsp;grep,...等软体中并无这些&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;用法.&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;*&nbsp;[&amp;]&nbsp;``&amp;''并非&nbsp;Regular&nbsp;Expression&nbsp;中的特殊字元.&nbsp;但以&nbsp;Regular&nbsp;Expression&nbsp;进&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;行字串找寻置换(Replace)时,&nbsp;常会用到&nbsp;``\&amp;''.&nbsp;\&nbsp;在许多&nbsp;Unix&nbsp;tool&nbsp;中,&nbsp;当&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;``\&amp;''出现在『将被置入的新字串』时,&nbsp;它用以表示&nbsp;``实际被找到合於所指定的&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Regular&nbsp;Expression&nbsp;的字串''&nbsp;(见下例说明)&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;o&nbsp;例如&nbsp;:&nbsp;找出档案中所有合乎&nbsp;Regexp&nbsp;``a[0-9]*\.c''&nbsp;的字串,&nbsp;并在其前後&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;加上小&nbsp;括号.依题意要求,&nbsp;档案中所有如&nbsp;``a12.c'',&nbsp;``a932.c'',&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;``a45.c''&nbsp;,...等字串都应置换为&nbsp;``(a12.c)'',&nbsp;``(a932.c)'',&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;``(a45.c)'',..&nbsp;.&nbsp;.&nbsp;遇到这情况,可令『将被置入的新字串』为&nbsp;``&nbsp;(&amp;)''&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;此时,&nbsp;``&amp;''便是用来表示实际上被找到合於&nbsp;Regexp&nbsp;``a[0-9]*\.c''&nbsp;的字&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;串.&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;下列是使用&nbsp;UNIX&nbsp;上不同的工具,&nbsp;来处理本例要求的字串置换.&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;o&nbsp;vi&nbsp;以&nbsp;vi&nbsp;编辑该档案,并在&nbsp;vi&nbsp;命令输入模式下输入&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:&nbsp;s/a[0-9]*\.c/(&amp;)/g&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;o&nbsp;sed&nbsp;执行如下命令&nbsp;(&nbsp;$&nbsp;表&nbsp;Shell&nbsp;命令列的提示符号&nbsp;)&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$&nbsp;sed&nbsp;-e&nbsp;'s/a[0-9]*\.c/&nbsp;(&amp;)/g'&nbsp;资料档名称&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;o&nbsp;awk&nbsp;执行如下命令&nbsp;(&nbsp;$&nbsp;表&nbsp;Shell&nbsp;命令列的提示符号&nbsp;)&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$&nbsp;awk&nbsp;'{&nbsp;gsub(/a[0-9]*\.c/,&nbsp;&quot;(&amp;)&quot;);&nbsp;print&nbsp;}'&nbsp;资料档名称&nbsp;<BR>&nbsp;<BR>----------------------------------------------------------------------------&nbsp;<BR>&nbsp;<BR>Note&nbsp;2:&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;上列字元在&nbsp;Regular&nbsp;Expression&nbsp;中代表特殊意义,&nbsp;称之为&nbsp;特殊字元.&nbsp;但&nbsp;Unix&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;中不同的指令对&nbsp;Regular&nbsp;Expression&nbsp;的解释能力不尽相同,&nbsp;故对特殊字元也有&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;不同的认定.&nbsp;请参考尾页附表.&nbsp;<BR>&nbsp;<BR><CENTER><H1>BBS水木清华站∶精华区</H1></CENTER></BODY></HTML>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -