grep 及正規表示式
文字查詢的需要,
grep, egrep, fgrep
grep:根據模式,去搜尋文字,並將符合模式的文字行顯示到螢幕
pattern: 文字字元和正規表示式的元字元組合而成的匹配條件
grep [options] pattern [file...]
#grep --color 'root' /etc/passwd
-i: 忽略字元大小寫
--color[=num]:
# alias grep='grep --color'
-v: 顯示沒有被模式匹配的行
-o: 只顯示被模式顯示的串
正規表示式:regular expression,regexp
元字元:
. :匹配單個任意字元 #grep --color 'r..t' /etc/passwd
:匹配指定範圍內的任意單個字元
[^] :匹配指定範圍外的任意單個字元
匹配次數(貪婪模式):
* :匹配其前面的字元任意次
a, b, ab, aab, acb, adb, amnb
a*b : b, ab, aab可以匹配
.* : 任意長度任意字元
a.*b :a開頭,b結束
\? : 匹配其前面字元0次或1次(部分匹配)
#grep 'a\?b' test.txt nmbmnbmnb符合
\ :匹配其前面字元至少m次,至多n次
\ :至少1次
\ :至少1次,至多3次
#grep 'a\b' test.txt
#grep 'a.\b' test.txt anmbnmbmnb符合
位置錨定:
^ :錨定行首,次字元後面的任意內容必須出現行首
#grep '^r..t' /etc/passwd
$ :錨定行尾,次字元後面的任意內容必須出現行尾
#grep 'w$' /etc/passwd
#grep 'b..h$' /etc/paawd
^$ :空白行
#grep '^$' /etc/inittab | wc -l 統計空白行
#grep '[[:digit:]]$' /etc/inittab 以乙個數字結尾的字元
\< 或\b :錨定詞首,其後面的任意字元必須作為單詞首部出現
\> 或\b :錨定詞尾,其前面的任意字元必須作為單詞首部出現
\精確匹配單詞root
分組:\(\)
\(ab\)* : ab 可以出現任意次
\1 :引用第1個左括號以及與之引用的內容
\2 :引用第2個左括號以及與之引用的
\3 :引用第3個左括號以及與之引用的
$ grep '\(l..e\).*\1' test1.txt //she like anna liker.
grep與正規表示式
grep命令 功能 輸入檔案的每一行中查詢字串。基本用法 grep acinv color auto a n b n 搜尋字串 檔名 引數說明 a 將二進位制文件以文字方式處理 c 顯示匹配次數 i 忽略大小寫差異 n 在行首顯示行號 a after的意思,顯示匹配字串後n行的資料 b before...
grep與正規表示式
正規表示式只是字串的一種描述,只有和支援正規表示式的工具相結合才能進行字串處理。本文以grep為例來講解正規表示式。grep命令 功能 輸入檔案的每一行中查詢字串。基本用法 grep acinv color auto a n b n 搜尋字串 檔名 引數說明 a 將二進位制文件以文字方式處理 c 顯...
grep 與正規表示式
正規表示式只是字串的一種描述,只有和支援正規表示式的工具相結合才能進行字串處理。本文以grep為例來講解正規表示式。功能 輸入檔案的每一行中查詢字串。基本用法 grep acinv color auto a n b n 搜尋字串 檔名 引數說明 a 將二進位制文件以文字方式處理 c 顯示匹配次數 i...