擴充套件的正則 egrep
pattern :由字元,正則的元字元,組合起來過濾文字的條件
grep -E 使用擴充套件的正則 等同於 egrep
grep -A # ... 當某行被pattern所匹配到,可以指定其後面多顯示#行,並且匹配到的不同的行用---隔開
grep -A 2 '^cpu' /proc/cpuinfo
grep -B # ... 前面的某幾行 before
grep -C # ... 前後的某幾行 context(上下文)
正則預設工作在貪婪模式下
. 任意單個字元
[] 指定範圍內的單個字元
[^] 指定範圍外的單個字元
* 其前面的字元任意次
? 其前面的字元0次或1次
+ 其前面的字元至少1次,相當於基本正則的 \{1,\}
{m,n}
^ 行首
$ 行尾
\< 詞首 \b
\> 詞尾 \b
分組: ()
\1 \2 \3 ...
或者
a|b a或b
C|cat 匹配的是C或cat, 即整個左邊 和 整個右邊的
(C|c)at 匹配Cat 或 cat
grep -E '^[[:space:]]+' /boot/grub/grub.conf 該檔案中,以至少一個空白字元開頭的行
問題:顯示所有以數字結尾且檔名中不包含空白的檔案?
ls *[^[:sapce:]]*[0-9] ???
問題:匹配 /boot/grub/grub.conf 檔案中 1~255之間的整數?
egrep --color '\<([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\>' /boot/grub/grub.conf
ifconfig | egrep --color '\<([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\>'
問題:匹配 ifconfig 顯示中的ip地址?
ifconfig | egrep '\<([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\>\.\<([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\>\.\<([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\>\.\<([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\>'
ifconfig | egrep --color '(\<([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\>\.){3}\<([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\>'
IPV4的地址:5類
A B C D E
有用的A B C
A:1-127.
B:128-191
C:192-223
\<([1-9]|[1-9][0-9]|1[0-9]{2}|2[01][0-9]|22[0-3])\>(\.\<([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-4])\>){2}\.\<([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-4])\>
本作品採用《CC 協議》,轉載必須註明作者和本文連結