grep——高逼格 Linux文字搜尋神器
一句話,如果你只記得某個檔案中的幾個詞,怎麼鎖定字串所在的目錄。
用軟體就 low 了,我們們用 mac 蘋果電腦的主當然是直接敲命令列顯逼格了,不用怕是灰常簡單實用的命令列。
grep 命令--簡單、好用、顯逼格
如果想根據檔名查詢檔案路徑,可以看我的這篇文章
find—— 高逼格Linux\Mac檔案目錄查詢神器,搭配使用效果更佳。
// 終端:當前目錄下的所有檔案,包含“你好”字串的檔案有多少、目錄在哪、在這個檔案的哪一行?
grep -rne "你好" .
What
grep
是什麼鬼?
grep(Globally search a Regular Expression and Print):
一種強大的文字搜尋工具,它能使用特定模式匹配(包括正規表示式)搜尋文字,並預設輸出匹配行
關於 grep 的詳細細節可以檢視 grep 的官方文件
When
我們都知道在 lunix 系統中“一切皆檔案”,那麼在終端偌大的磁碟數不清的檔案中,你想要的檔案究竟在哪呢?
grep
:
根據檔案中文字行(部分或完整)查詢相應檔案
Know-how
總體命令格式
grep [選項] [模式] [input_file_names]
命令 | 引數 | 作用 |
---|---|---|
-a |
-- | 不要忽略二進位制資料 |
-A |
<顯示列數> |
除了顯示符合範本樣式的那一行之外,並顯示該行後的內容 |
-b |
-- | 在顯示符合範本樣式的那一行之外,並顯示該行之前的內容 |
-c |
-- | 計算符合範本樣式的列數 |
-C |
<顯示列數>或-<顯示列數> |
除了顯示符合範本樣式的那一列之外,並顯示該列之前後的內容 |
-d |
<進行動作> |
當指定要查詢的是目錄而非檔案時,必須使用這項引數,否則grep命令將回報資訊並停止動作 |
-e |
<範本樣式> |
指定字串作為查詢檔案內容的範本樣式 |
-E |
--- | 將範本樣式為延伸的普通表示法來使用,意味著使用能使用擴充套件正規表示式 |
-f |
<範本檔案> |
指定範本檔案,其內容有一個或多個範本樣式,讓grep查詢符合範本條件的檔案內容,格式為每一列的範本樣式 |
-F |
--- | 將範本樣式視為固定字串的列表 |
-G |
--- | 將範本樣式視為普通的表示法來使用 |
-h |
--- | 在顯示符合範本樣式的那一列之前,不標示該列所屬的檔名稱 |
-H |
--- | 在顯示符合範本樣式的那一列之前,標示該列的檔名稱 |
-i |
-- | 忽略字元大小寫的差別 |
-l |
-- | 列出檔案內容符合指定的範本樣式的檔名稱 |
-L |
-- | 列出檔案內容不符合指定的範本樣式的檔名稱 |
-n |
-- | 在顯示符合範本樣式的那一列之前,標示出該列的編號 |
-q |
-- | 不顯示任何資訊 |
-R/-r |
-- | 此引數的效果和指定“-d recurse”引數相同 |
-s |
-- | 不顯示錯誤資訊 |
-v |
-- | 反轉查詢 |
-w |
-- | 只顯示全字元合的列 |
-x |
-- | 只顯示全列符合的列 |
-y |
-- | 此引數效果跟“-i”相同 |
-o |
-- | 只輸出檔案中匹配到的部分 |
1、命令列選項
- 基本資訊
- 匹配控制
- 輸出控制
- 輸出路徑字首
- 上下文行控制
- 檔案目錄選擇
1.1、 基本資訊命令
幫助
--help
版本資訊
-V
--version
bogon:Desktop guoxiangyang$ grep --version
grep (BSD grep) 2.5.1-FreeBSD
1.2、 匹配控制
- 指定字串作為匹配文字,查詢文字在檔案中的位置
grep -e <pattern>
--regexp=pattern
查詢README.md檔案中“collection”字串
bogon:YYKit guoxiangyang$ grep -e "collection" README.md
YYKit is a collection of iOS components.
- 範本樣式為固定字串
grep -F
bogon:YYKit guoxiangyang$ grep -F collecti README.md README1.md
README.md:YYKit is a collection of iOS components.
- 以檔案為單位,多個檔案進行匹配查詢
事先將要搜尋的樣式寫入到一個檔案,一行一個樣式。然後採用檔案搜尋。 空的檔案表示沒有要搜尋的樣式,因此也就不會有任何符合。
// newfile為搜尋樣式檔案
grep -f <newfile> <file>
- 查詢時忽略字元大小寫
-i
-y
--ignore-case
- 反轉查詢
-v
--invert-match
- 只顯示全字元符合的列
-w
--word-regexp
- 只顯示全列符合的列
-x
--line-regexp
1.3、 基本輸出控制
- 輸出數字,統計匹配樣本的行數
-c
-count
bogon:YYKit guoxiangyang$ grep -c "CocoaPods" README.md
6
- 給輸出的匹配文字加顏色
--color
grep --color=auto
- 列出檔案內容符合匹配文字的檔名稱
-l
--files-with-matches
grep -l <pattern> file1 file2 ...
- 列出檔案內容不符合匹配文字的檔名稱
-L
--files-without-match
grep -L <pattern> file1 file2 ...
- 只輸出檔案中匹配到的部分
-o
--only-matching
bogon:YYKit guoxiangyang$ grep "CocoaPods" -o README.md README1.md
README.md:CocoaPods
README.md:CocoaPods
1.4、 輸出字首控制
- 當要輸出多個字首欄位時,不管這些選項的指定順序如何,順序始終是檔名:行號:位元組偏移量。
-b
--byte-offset
bogon:YYKit guoxiangyang$ grep "CocoaPods" -b README.md README1.md
README.md:2252:### CocoaPods
- 在每行輸出前列印檔名,當有多個檔案時預設列印檔名
-H
--with-filename
- 在每行輸出前加上匹配文字所在的行號
-n
--line-number
1.5、 上下文字行控制
- 除了顯示符合範本樣式的那一行之外,並顯示該行之後的內容
-A <num>
--after-context=<num>
// 匹配"CocoaPods",並輸出之後的2行
grep "CocoaPods" -A2 README.md README1.md
- 在顯示符合範本樣式的那一行之外,並顯示該行之前的內容
-B <num>
--before-context=<num>
- 在顯示符合範本樣式的那一行之外,並顯示該行之前、之後行的內容
-C <num>
-<num>
--context=<num>
1.6、 檔案和目錄選擇
- 不要忽略二進位制檔案
-a
--text
- 指定查詢範圍是目錄時必用
-d recurse
-R --dereference-recursive
-r --recursive
// 當前目錄下查詢匹配"CocoaPods",無需指定檔名
grep "CocoaPods" -r .
引用相關
相關文章
- Linux日誌搜尋 grepLinux
- Linux vim 搜尋文字的方式Linux
- Linux 搜尋命令總結 – whereis,which,locate,find,grepLinux
- Linux文字搜尋常用命令Linux
- 使用grep搜尋多個字串字串
- 檔案許可權管理命令chmod,chown與文字搜尋命令grep
- Linux (三劍客之一) grep字串搜尋命令詳解Linux字串
- grep 命令系列:使用 grep 命令來搜尋多個單詞
- 點選搜尋框清空搜尋提示文字
- 比Linux grep更快的作業系統檔案目錄搜尋工具:ripgrepLinux作業系統
- Linux基礎命令—顯示文字grepLinux
- Linux 檔案搜尋神器 find 實戰詳解,建議收藏!Linux
- Nebula 基於 ElasticSearch 的全文搜尋引擎的文字搜尋Elasticsearch
- Elasticsearch(ES)的高階搜尋(DSL搜尋)(上篇)Elasticsearch
- Elasticsearch(ES)的高階搜尋(DSL搜尋)(下篇)Elasticsearch
- grep搜尋伺服器日誌(搜尋指定關鍵字的行,按照日期group by count)伺服器
- if判斷和grep命令-w及搜尋前後行
- Linux 中grep命令如何匹配中文字元Linux字元
- grep精確匹配搜尋某個單詞的用法 (附: grep高效用法小結))
- Github高階搜尋技巧Github
- HHDESK檔案內文字搜尋功能
- grep 的 -a引數可以使得搜尋binary檔案了
- 分享Linux Grep高階使用者指南Linux
- GitHub的高階搜尋方式Github
- 文字獲取和搜尋引擎簡介
- 18. 使用MySQL之全文字搜尋MySql
- magnetX,資源搜尋神器!老司機快上車!
- Kali Linux搜尋軟體包Linux
- Linux 提權-密碼搜尋Linux密碼
- Linux搜尋啟動工具FindexLinuxIndex
- MongoDB中的完整和部分文字搜尋MongoDB
- Steam全新搜尋功能上線 可按價格縮小搜尋範圍
- win10的cortana不能文字搜尋怎麼辦 win10的cortana無法文字搜尋解決方法Win10
- 新手秒懂 - 高逼格解釋變數提升變數
- Linux:管道命令與文字處理三劍客(grep、sed、awk)Linux
- 【Linux進階】使用grep、find、sed以及awk進行文字操作Linux
- Linux grep 命令Linux
- linux-grepLinux