? ? ? ?當(dāng)你有大量數(shù)據(jù)時(shí),通常很難處理這些信息及提取有用信息。Linux系統(tǒng)提供了一些命令行工具來處理大量數(shù)據(jù)。那么今天南昌網(wǎng)絡(luò)公司小編先為大家介紹一下Linux系統(tǒng)中搜索數(shù)據(jù)的方法,其實(shí)用grep命令來幫助查找就行了。
? ? ? ?grep命令的命令行格式如下:
? ? ? ?grep [options] pattern [file]?
? ? ? ?grep命令會(huì)在輸入或指定的文件中查找包含匹配指定模式的字符的行。grep的輸出就是包含了匹配模式的行。
? ? ? ?下面兩個(gè)簡單的例子演示了使用grep命令來對(duì)文件file1(自定義文件,用來舉例用)進(jìn)行搜索,下面我們來看看。
?
? ? ? ?$ grep three file1?
? ? ? ?three?
? ? ? ?$ grep t file1?
? ? ? ?two?
? ? ? ?three?
? ? ? ?$?
? ? ? ?第一個(gè)例子在文件file1中搜索能匹配模式three的文本。grep命令輸出了匹配了該模式的行。第二個(gè)例子在文件file1中搜索能匹配模式t的文本。這個(gè)例子里,file1中有兩行匹配了指定的模式,兩行都輸出了。
? ? ? ?由于grep命令非常流行,它經(jīng)歷了大量的更新。有很多功能被加進(jìn)了grep命令。如果查看一下它的手冊(cè)頁面,你會(huì)發(fā)現(xiàn)它是多么的無所不能。 ?
? ? ? ?如果要進(jìn)行反向搜索(輸出不匹配該模式的行),可加-v參數(shù)。?
? ? ? ?$ grep -v t file1?
? ? ? ?one?
? ? ? ?four?
? ? ? ?five?
? ? ? ?$?
? ? ? ?如果要顯示匹配模式的行所在的行號(hào),可加-n參數(shù)。?
? ? ? ?$ grep -n t file1?
? ? ? ?2:two?
? ? ? ?3:three?
? ? ? ?$?
? ? ? ?如果只要知道有多少行含有匹配的模式,可用-c參數(shù)。?
? ? ? ?$ grep -c t file1?
? ? ? ?2?
? ? ? ?$?
? ? ? ?如果要指定多個(gè)匹配模式,可用-e參數(shù)來指定每個(gè)模式。
?
? ? ? ?$ grep -e t -e f file1?
? ? ? ?two?
? ? ? ?three?
? ? ? ?four?
? ? ? ?five?
? ? ? ?$?
? ? ? ?這個(gè)例子輸出了含有字符t或字符f的所有行。?
? ? ? ?默認(rèn)情況下,grep命令用基本的Unix風(fēng)格正則表達(dá)式來匹配模式。Unix風(fēng)格正則表達(dá)式采 用特殊字符來定義怎樣查找匹配的模式。?
? ? ? ?以下是在grep搜索中使用正則表達(dá)式的簡單例子。?
? ? ? ?$ grep [tf] file1?
? ? ? ?two?
? ? ? ?three?
? ? ? ?four?
? ? ? ?five?
? ? ? ?$?
? ? ? ?正則表達(dá)式中的方括號(hào)表明grep應(yīng)該搜索包含t或者f字符的匹配。如果不用正則表達(dá)式,grep就會(huì)搜索匹配字符串tf的文本。?
? ? ? ?egrep命令是grep的一個(gè)衍生,支持POSIX擴(kuò)展正則表達(dá)式。POSIX擴(kuò)展正則表達(dá)式含有更多的可以用來指定匹配模式的字符。fgrep則是另外一個(gè)版本,支持將匹配模式指定為用換行符分隔的一列固定長度的字符串。這樣就可以把這列字符串放到一個(gè)文件中,然后在fgrep命令中用其在一個(gè)大型文件中搜索字符串了。?
? ? ? ?關(guān)于Linux中g(shù)rep命令的用法你掌握了嗎?如果還有哪些不太明白的地方,可來電和我們聯(lián)系,百恒網(wǎng)絡(luò)專業(yè)為您解答。