Linux 如何使用grep
2016-08-24 15:43:04
10726
一直以為grep只能進(jìn)行單個(gè)文件的篩選,今天才發(fā)現(xiàn),它可以進(jìn)行多個(gè)文件的篩選。這個(gè)功能真是太強(qiáng)大了。還是記錄一下吧。
假設(shè)我要找一個(gè)start_kernel函數(shù),但我不知道此函數(shù)在哪個(gè)文件里,于是可以用如下命令:
grep -wrI "start_kernel" ./*
以下是一些其它的用法,也記錄一下,算是鞏固吧
grep命令主要參數(shù):
-c:只輸出匹配行的計(jì)數(shù)。
-I:不處理二進(jìn)制文件
-i:不區(qū)分大小寫(只適用于單字符)。
-r:遞歸處理目錄下的所有文件。
-h(huán):查詢多文件時(shí)不顯示文件名。
-l:查詢多文件時(shí)只輸出包含匹配字符的文件名。
-n:顯示匹配行及 行號(hào)。
-s:不顯示不存在或無匹配文本的錯(cuò)誤信息。
-v:顯示不包含匹配文本的所有行。
-w:包含正則表達(dá)式。
grep命令常見用法:
(1)多個(gè)文件查詢
grep "sort" *.doc #常見文件名的匹配
(2)行匹配:輸出匹配行的計(jì)數(shù)
grep -c "sort" data.doc #輸出data.doc中含有sort的行數(shù)
(3)顯示匹配行和行數(shù)
grep -n "sort" data.doc #顯示data.doc中所有匹配sort的行和行號(hào)
(4)顯示非匹配的行
grep -vn "sort" data.doc #輸出data.doc中所有不?含sort行
(4)顯示非匹配的行
grep -vn "sort" data.doc #輸出data.doc中不包含sort的行
(5)大小寫敏感
grep -i "ab" data.doc #輸出data.doc中所有含有ab或Ab的字符串的行
(6)正則表達(dá)式的應(yīng)用 (注意:最好把正則表達(dá)式用單引號(hào)括起來)
grep '[239].' data.doc #輸出所有含有以2,3或9開頭的,并?是兩個(gè)數(shù)字的行
(7)不匹配測(cè)試
grep '^[^48]' data.doc #不匹配行首是48的行