通過使用grep命令,我們可以在文本文件中找到感興趣的文字,甚至從其他程序的輸出中進(jìn)行搜索。
本章的主要知識(shí)點(diǎn)
(1)使用grep命令搜索文件中的字符串;
(2)使用grep命令搜索其他命令的輸出;
(3)正則表達(dá)式的各種高級(jí)用法。
grep命令的作用是在文本文件中搜索指定的字符串,并且把匹配成功的行數(shù)據(jù)打印到終端。執(zhí)行g(shù)rep命令的語法格式如下:
grep [options] [regular exPRession][filename…]
案例1
如何查看當(dāng)前計(jì)算機(jī)所使用的CPU型號(hào)?
#CPU型號(hào)保存在/proc/cpuinfo文件的model name字段中
$grep “model name” /proc/cpuinfo
主要參數(shù) [options]-c : 只輸出匹配的行-I : 不區(qū)分大小寫-h : 查詢多文件時(shí)不顯示文件名-l : 查詢多文件時(shí), 只輸出包含匹配字符的文件名-n : 顯示匹配的行號(hào)及行-v : 顯示不包含匹配文本的所有行(我經(jīng)常用除去grep本身)
正則表達(dá)式可以指定字符的范圍:
集合 | 含義 |
[a-z] | 匹配一個(gè)小寫字母 |
[A-Z] | 匹配一個(gè)大寫字母 |
[a- zA-Z] | 匹配一個(gè)字母 |
[a- zA-Z0-9] | 匹配一個(gè)字母或數(shù)字 |
案例1:
如何使用grep命令匹配文本文件中的一個(gè)email地址呢?
#使用選項(xiàng)-E來支持?jǐn)U展正則表達(dá)式
$grep –E “[ a-zA-Z0-9_.- ]+@[ a-zA-Z0-9_.-]+/.[ a-zA-Z0-9 ]+” CREDITS
#grep命令中@用來匹配自己,因@是普通字符,所以不需要轉(zhuǎn)義;+是指匹配一個(gè)或多個(gè)加號(hào)+前面的字符。注意,使用加號(hào)+進(jìn)行匹配時(shí),至少要匹配一個(gè)。
在擴(kuò)展正則表達(dá)式中,可以方便使用一些特殊字符,如?,+,{n,m},()等,從而構(gòu)建更加強(qiáng)大、更加復(fù)雜的搜索模式。
案例2:
上一個(gè)例子,可能是以點(diǎn).開頭,該如何避免這種情況出現(xiàn)?
|
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注