Linux雜記5

junwind發表於2021-03-02
擴充套件的正則  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的地址:5A B C D E

    有用的A B C

    A1-127.
    B128-191
    C192-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 協議》,轉載必須註明作者和本文連結
六月的風