grep用法小結
阿新 • • 發佈:2019-01-11
用法
grep [OPTIONS] PATTERN [FILE...]
grep [OPTIONS] -e PATTERN ... [FILE...]
grep [OPTIONS] -f FILE ... [FILE...]
grep在檔案中查詢匹配正則表示式的內容,預設打印出匹配的一行
選項
-E 支援擴充套件正則表示式
-F 把PATTERN解析成簡單的字串,而不是正則表示式
-G 只支援基礎正則表示式,這是預設選項
-P 支援perl正則表示式
使用檔案grp.txt為演示
$ cat grp.txt
{"id":1, "username": " jack", "email": "[email protected]"}
{"res":[2,1,5,7]}
baidu in beijing
didi in beijing
ali in hangzhou
tencent in shenzhen
huawei in shenzhen
-e PATTERN, 使用-e選項可以匹配多個條件
-f FILE, 從檔案中獲取PATTERN
-i 忽略大小寫
-v 反向匹配,只選擇未匹配的
-w 匹配整個單詞
-x 匹配整行
可以看到 -x 選項和 grep '^h.*en$' grp.txt 等價
-c 不列印結果,只打印匹配到的行數
--color 匹配到的表示式高亮顯示
-L 打印出未匹配的檔案列表
-l 打印出匹配的檔案列表
-m 指定最大匹配行數
-o 只打印匹配到的字串,而不是列印一整行
-q 不列印結果,但是我們可以根據$?來判斷是否有匹配到,在指令碼中常用
-s 不列印錯誤結果(檔案不存在、不可讀檔案)
-b 列印本行在檔案中的位元組偏移量
-H 列印匹配的檔名。當有多個檔案匹配到的時候,這個是預設選項
-h 不列印檔名
-n 輸出行號
--label 顯示輸入的時候用到,讓標準輸入STDIN的顯示像從檔案中讀取的一樣
-T 輸出按照tab縮排
-Z 在檔名後輸出 zero byte, 也就是啥都不輸出
-A NUM 在匹配行後面再輸出 NUM 行內容
-B NUM 在匹配行前面再輸出 NUM 行內容
-C NUM 在匹配行前後各輸出 NUM 行內容
--exclude=GLOB
--exclude-from=FILE
--exclude-dir=GLOB
這三個是跳過檔案或目錄
--include=GLOB 只處理匹配 GLOB 的檔案