linux grep命令使用詳解


grep是我們最常用的命令之一,但是正真用的熟的不多,把基礎命令記牢固,能幫我們節約很多時間

grep的option

-A 1 表示找到所有匹配行,並顯示所有匹配行后的一行
在錯誤日志查找時還是很有用

-B 1 表示找到所有匹配行,並顯示所有匹配行的前面一行

-C 1表示找到所有匹配行,並顯示所有匹配行的前一行,后一行

-a 表示把所有文件當作ASCII文件來處理 搜索二進制文件
//a.pcap是一個tcpdump生成的文件,為binary文件,使用grep不能搜索

-b 表示顯示match的字符串在文件中的offset

-c 顯示有多少行match

–color 是把match的字符用不同顏色標示出來

-e 后面跟一個正則表達式,指定多個正則表達式的時候很有用

-f可以指定pattern在我們的文件中 pattern文件中的每一行都會來進行匹配

-m 最多匹配幾個后,就停止,這樣速度會比較快

-n 匹配之后,在前面打印行號,這個還是有用的

-o 只打印匹配的內容

-R 搜索子目錄
$ll
total 208
-rw-r–r– 1 * * 91868 5 1 23:05 a.pcap
-rw-r–r– 1 * * 31 5 2 22:39 a.txt
-rw-r–r– 1 * * 4 5 1 23:18 b.txt
drwxr-xr-x 3 * * 102 5 4 18:58 dir1 //這是一個目錄
-rw-r–r– 1 * * 4 5 4 18:49 pattern.txt

//只能搜索當前目錄

-v invert查找 下面為在a.txt中,查找不包含”a”的行 這個命令會經常使用

-w 查找一個詞,

grep 正則表達式

^pattern 表示開頭處開始匹配

. 為匹配任意單個字符

“r.*h”
//匹配一個字符串,其中有r,有h,且r在前,h在后,且r和h之間可以間隔任意長度的任意字符串,sat考試培訓當然也可以沒有間隔

//匹配一個字符串,其中r是第一個字符,h是最后一個字符,且r和h之間可以間隔任意長度的任意字符串,當然也可以沒有間隔

匹配指定范圍內的任意字符 [e] 匹配任意單個字符
$ echo “redh” |grep “[e]”
redh

$ echo “redh” |grep “[s]”

匹配指定范圍內的任意字符 [eh] 匹配e或h

匹配指定范圍內的任意字符 [a-z],[1-3a-b] [1-3a-bX-Z]

//[^] 匹配指定范圍外的字符

[[:space:]] 匹配空白字符

\? 表示匹配前面的字符串0次或1次

{m,n} 匹配前面的字符串m到n次

{2,} 匹配前面的字符串至少兩次

// \

//() 用來進行分組, 下面這個就是匹配帶有re和rea的

+ 表示匹配前面的字符串一次或多次

| 表示或的關系 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2024 CODEPRJ.COM