1. 程式人生 > 其它 >文字處理工具和正則表示式

文字處理工具和正則表示式

基本正則表示式元字元
三劍客(grep) grep "root" /etc/passwd
字元匹配
. 表示任意字元,可以是一個漢字。 echo a.c |grep a.b(顯示·需要用\轉譯)
[]匹配指定範圍內的任意字元 '[liujinxi]'[0-9]' ls | grep '[liujinxi].txt'
[^]匹配指定範圍外的任意字元 '[^liujinxi]' ls |greo '[^liujinxi].txt'
[:lower:] 過濾小寫字元 ls |grep 'file[[:lower:]].txt'
[:alnum:]字母和數字
[:alpha:]代表任何英文大小寫字元
[:upper:]大寫字母
匹配次數

  • 貪婪模式 echo gooogle | grep 'go'(匹配到gooog所有)
    ?懶惰模式 echo gooogle | greo 'go?'(只匹配到gog)
    .
    匹配到任意字元
    + echo google | grep 'go+'(匹配一個以上)
    {n} ehco google | grep '{6,}'gle 匹配到幾到幾
    標識位置
    ^ 標識左側行首錨定 grep '^root' /etc/passwd '[#]'行首去除#開頭
    $ 標識結尾錨定 grep 'bash$' /etc/passwd
    [:space:]空白字元 grep '[1]*$' test.txt -n (去頭去尾取空白) cat -A test.txt -n (-n顯示行號)(-A顯示換行或者空格)

    < 顯示單詞頭 \b (相同)
    > 顯示單子尾 \b(相同)
    獲取ifconfig裡面的ip地址 ifconfig ens33 | grep netmask | grep -o '[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}' | head -1
    ifconfig ens33 | grep -i mask | grep -o '([0-9]{1,3}.){3}[0-9]{1,3}' |head -1

    分組

    echo abcabcabc | grep '(abc){3}'
    echo 1 | grep '1|2'(或1 或2)
    或和分組
    echo 1abc |grep '(1|2)abc'
    擴充套件正則表示式
    獲取ifconfig裡面的ip地址 ifconfig ens33 |grep -i mask |grep -oE '([0-9]{1,3}.){3}[0-9]{1,3}'|head -1
    取反
    grep -v '^#' /cet/paswwd(過濾到#開頭的行)
    ss -nta(統計連線狀態)

  1. [:space:] ↩︎