日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

UNIX 新手指南,第 3 部分:正則表達式( 二 )


g[oe]lf
句點
現(xiàn)在假設(shè)您有第三種體育運動 gilf,您也希望對其進行檢查 。使用您到目前為止已學(xué)到的知識,一種方法是在您的搜索條件中使用 o、e 和 i 。但是隨著您的搜索的逐步發(fā)展,您可能希望查找以 g 開頭、以 lf 結(jié)尾并且其間具有一個字符的所有字符串 。為此,您可以使用另一個特殊字符,即句點 (.) 。
g.lf
這將查找以 g 開頭和以 lf 結(jié)尾并且其間具有一個字符的所有字符串 。若要將您的搜索擴展到以 g 開頭和以 f 結(jié)尾并且其間具有兩個字符的所有字符串,您可以使用兩個句點:
g..f
使用 grep 來搜索文件
現(xiàn)在您已經(jīng)對正則表達式背后的概念有了基本的了解,您可以開始使用實際的示例,以便能夠看到它們的實際運用 。您將試驗的第一個命令行應(yīng)用程序是 grep 。grep 的名稱實際上就來自于正則表達式:g/RE/p 。grep 用于在一個或多個文件中搜索特定字符串的實例 。缺省情況下,grep 輸出其中出現(xiàn)了您的搜索字符串的每一行(而不是僅輸出搜索字符串) 。如果您在多個文件中執(zhí)行搜索,則 grep 還會輸出在其中找到該行的文件名 。
使用以下文本創(chuàng)建一個名為 grep.txt 的文件:
I like golf.
Golf is played on grass.
I created gilf.
【UNIX 新手指南,第 3 部分:正則表達式】grep 的基本語法如下:
grep REGULAREXPRESSION FILENAME(S)
基本搜索
現(xiàn)在,返回到前面的第一個正則表達式示例:單獨的單詞 golf 。若要與 grep 一起使用這個表達式,可輸入:
grep golf grep.txt
此命令在 grep.txt 文件中搜索字符串 golf 的所有實例,并輸出包含該字符串的行 。您的輸出應(yīng)該類似如下:
I like golf.
使用方括號
下一步,試驗一些上面討論過的特殊字符 。您可以使用方括號(方括號表達式)來指示您想要搜索 golf 和 Golf:
grep [gG]olf grep.txt
輸出應(yīng)該類似如下:
I like golf.
Golf is played on grass.
句點
若要搜索 golf 和 gilf,您同樣可以使用方括號 。取而代之的是,可以嘗試使用一個句點來指示您想要搜索 g 和 lf 之間的任何字符:
$grep g.lf grep.txt
輸出應(yīng)該類似如下:
I like golf.
I created gilf.
搜索 golf、Golf 和 gilf
您現(xiàn)在已經(jīng)找到了獲得每種 golf 變體的方法,但是還沒有哪個搜索返回了所有三個實例:golf、Golf 和 gilf 。花點時間考慮一下如何搜索所有三個實例 。這可以通過多種方法來實現(xiàn) 。下面是兩個示例:
grep ..lf grep.txt
grep [gG][oi]lf grep.txt
這兩種方法都返回所有三行:
I like golf.
Golf is played on grass.
I created gilf.
短橫線
您是否能夠想出更多的方法來完成此任務(wù)呢?到目前為止,您僅學(xué)習(xí)了兩個在正則表達式中使用的特殊字符 。這只是開始!有些特殊字符在其他特殊字符之內(nèi)使用 。例如,當(dāng)您將一組字符包括在方括號中時,您可以使用短橫線 (-) 來搜索一系列字符 。將以下行添加到您的文本文件:
What is g2lf?
使用您到目前為止已學(xué)到的知識,您知道如果使用類似于 g.lf 或 g[oi2]lf 的正則表達式,則這一行將包括在搜索結(jié)果中 。使用句點將返回在該位置具有任何字符的結(jié)果;使用 [oi2] 將返回僅在該位置具有 o i 或 2 的結(jié)果 。通過使用一個短橫線,您可以實現(xiàn)第三種方法,其中不只包括少數(shù)字符,但并不是包括每個字符:
grep g[a-z]lf
此方法產(chǎn)生以下輸出:
I like golf.
I created gilf.
從輸出中可以看到,此方法搜索落在 a 和 z 之間的任何字符(按字母順序) 。這排除了在 g 和 lf 之間具有數(shù)字或符號的字符串,這些字符串不是真正的單詞,可能不屬于您所需的搜索條件 。

推薦閱讀