Linux文字搜尋工具grep使用詳解
一、grep (縮寫來自Globally search a Regular Expression and Print)是一種強大的文字搜尋工具,它能使用正規表示式搜尋文字,並把匹配的行列印出來。Unix的grep家族包括grep、egrep和fgrep
grep: 預設支援基本正規表示式;
egrep: 擴充套件正規表示式;
fgrep: 不支援正規表示式元字元,搜尋字串的速度快
二、通過man手冊獲取grep幫助資訊:
#man grep
GREP(1) GREP(1)
NAME
grep, egrep, fgrep – print lines matching a patternSYNOPSIS
grep [options] PATTERN [FILE...]
grep [options] [-e PATTERN | -f FILE] [FILE...]DESCRIPTION
Grep searches the named input FILEs (or standard input if no files are named, or the file name – is given) for
lines containing a match to the given PATTERN. By default, grep prints the matching lines.In addition, two variant programs egrep and fgrep are available. Egrep is the same as grep -E. Fgrep is the
same as grep -F.
三、grep的常用選項
–color=auto
export GREP_COLOR=’01;36′
-v: 反向選取,只顯示不符合模式的行;
-o: 只顯示被模式匹配到的字串,而不是整個行;
-i: 不區分字元大小寫;
-A #:顯示匹配到的行時,順帶顯示其後面的#個行;
-A 2
-B #:前面的#行;
-C #:前後的#行;-E: 使用擴充套件的正規表示式
grep -E = egrep
三、grep正規表示式基本元字符集
元字元:不表示字元本身的意義,而用於額外功能性的描述
^:錨定行首的符合條件的內容
# grep “^root” /etc/passwd //搜尋以root開頭的行
$: 錨定行尾的符合條件的內容
#grep “bash$” /etc/passwd //搜尋以bash結尾的行
.: 匹配任意單個字元
匹配s和l之間有單個任意字元的內容
*:匹配緊挨在其前面的字元任意次(包含0次)
匹配k前面有0個或任意個s
[]:匹配指定範圍內的任意單個字元
匹配D或d中間包含兩個任意字元並以n結尾的行
[^]:匹配指定範圍外的任意單個字元
#grep “[^A-Z].*a” text –color=auto //匹配任意一個非大與字母后面面跟0個或多個任意字元以a結尾的行
\?: 匹配緊挨在其前面的字元0次或1次;
匹配b之前有0個或1個a
匹配a和b之前有0個或1個任意字元
\{m,n\}: 匹配其前面的字元至少m次,至多n次;
\{0,n\}: 至多n次;0-n次;
\{m,\}:至少m次
\{m\}: 精確匹配m次;
匹配b 前面的a 至少1次至多2次
\<: 錨定詞首,用法格式:\<pattern
\b: \bpattern
搜尋以root為詞首的行
\>: 錨定詞尾,用法格式:pattern\>
\b: pattern\b
搜尋以root為詞尾的行
\<pattern\>:錨定單詞
搜尋包含root單詞的行
\(\): 分組,用法格式: \(pattern\)
\1 :可以引用第一個分組匹配到的內容
\2 :可以引用第二個分組匹配到的內容
搜尋R或r和d之間出現兩個任意字元而後又跟0個或多個任意字元 ,並在其後引用匹配到的內容
字符集合
[:digit:] 所有數字 0-9
[:lower:] 所有小寫字母 a-z
[:upper:] 所有大寫字母 A-Z
[:punct:] 所有標點符號
[:space:] 表示空格或tab鍵
[:alpha:] 表示所有字母(包含大小寫)a-zA-Z
[:alnum:] 表示所有字母和數字 a-zA-Z0-9
注:非需要這樣表示[^[] ], 如[[:space :]]表示空格 [^[:space:]] 表示非空
搜尋/boot/grub/grub.conf 以空格開頭的行
相關文章
- grep——高逼格 Linux文字搜尋神器Linux
- Linux (三劍客之一) grep字串搜尋命令詳解Linux字串
- Linux日誌搜尋 grepLinux
- 使用grep搜尋多個字串字串
- Linux常用指令---grep(搜尋過濾)Linux
- grep 命令系列:使用 grep 命令來搜尋多個單詞
- Linux 文字處理工具(grep sed awk )Linux
- 比Linux grep更快的作業系統檔案目錄搜尋工具:ripgrepLinux作業系統
- linux grep命令詳解Linux
- Linux命令grep詳解Linux
- Linux vim 搜尋文字的方式Linux
- Linux 三劍客之 grep 使用詳解Linux
- Linux 搜尋命令總結 – whereis,which,locate,find,grepLinux
- 檔案許可權管理命令chmod,chown與文字搜尋命令grep
- 詳解Linux指令與檔案的搜尋Linux
- 【Linux】ps -ef|grep詳解Linux
- Linux文字搜尋常用命令Linux
- 效能工具之linux三劍客awk、grep、sed詳解Linux
- 【elasticsearch】搜尋過程詳解Elasticsearch
- Linux搜尋啟動工具FindexLinuxIndex
- 18. 使用MySQL之全文字搜尋MySql
- 6個使用正規表示式搜尋文字中內容的工具
- Linux三劍客之grep詳解Linux
- JavaScript搜尋框提示文字JavaScript
- grep 命令詳解
- Nebula 基於 ElasticSearch 的全文搜尋引擎的文字搜尋Elasticsearch
- NumPy 分割與搜尋陣列詳解陣列
- Linux Grep命令使用的詳細介紹Linux
- elasticsearch 搜尋引擎工具的高階使用Elasticsearch
- 學習Linux,101:使用正規表示式搜尋文字檔案Linux
- TextView搜尋文字高亮顯示TextView
- Linux 檔案搜尋神器 find 實戰詳解,建議收藏!Linux
- win10的cortana不能文字搜尋怎麼辦 win10的cortana無法文字搜尋解決方法Win10
- 終端搜尋工具
- grep搜尋伺服器日誌(搜尋指定關鍵字的行,按照日期group by count)伺服器
- if判斷和grep命令-w及搜尋前後行
- Linux三劍客Awk、Sed、Grep 命令詳解Linux
- Linux 三劍客 Awk、Sed、Grep 命令詳解Linux