文字處理工具和正則表示式
阿新 • • 發佈:2021-11-18
基本正則表示式元字元
三劍客(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(統計連線狀態)
[:space:] ↩︎