Linux 如何使用grep
一直以為grep只能進行單個文件的篩選,今天才發現,它可以進行多個文件的篩選。這個功能真是太強大了。還是記錄一下吧。
假設我要找一個start_kernel函數,但我不知道此函數在哪個文件里,于是可以用如下命令:
grep -wrI "start_kernel" ./*
以下是一些其它的用法,也記錄一下,算是鞏固吧
grep命令主要參數:
-c:只輸出匹配行的計數。
-I:不處理二進制文件
-i:不區分大小寫(只適用于單字符)。
-r:遞歸處理目錄下的所有文件。
-h:查詢多文件時不顯示文件名。
-l:查詢多文件時只輸出包含匹配字符的文件名。
-n:顯示匹配行及 行號。
-s:不顯示不存在或無匹配文本的錯誤信息。
-v:顯示不包含匹配文本的所有行。
-w:包含正則表達式。
grep命令常見用法:
(1)多個文件查詢
grep "sort" *.doc #常見文件名的匹配
(2)行匹配:輸出匹配行的計數
grep -c "sort" data.doc #輸出data.doc中含有sort的行數
(3)顯示匹配行和行數
grep -n "sort" data.doc #顯示data.doc中所有匹配sort的行和行號
(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)正則表達式的應用 (注意:最好把正則表達式用單引號括起來)
grep '[239].' data.doc #輸出所有含有以2,3或9開頭的,并?是兩個數字的行
(7)不匹配測試
grep '^[^48]' data.doc #不匹配行首是48的行