拓展正則表達式

1.提示

默認 grep sed不能直接識別

grep 提升自己? -- egrep/grep -E?

sed? 提升自己? -- sed -r?? 主要用來自動編輯一個或多個文件、簡化對文件的反復操作、編寫轉換程序等

還有就是一種方法把需要用到的拓展正則用撬棍\打回到基本的正則表達式

2.+號符號( 匹配前一個字符連續(xù)出現(xiàn)了1次或者多次 )


my qq num is 49000448.

not 4900000448.

egrep "0+" oldboy_test.txt

grep "0\+" oldboy_test.txt

結果: 000

? ? 00000

找出身份證信息輸入錯誤的內(nèi)容

張三 110105199004067631

李四? 104105199004067631

王五? 104105199004067631

趙六 oldboy

grep -Ev "[0-9]+" oldboy_test02.txt

趙六 oldboy

3.豎線符號|

用于匹配多個信息

grep -E "oldboy|oldbey" oldboy_test.txt

4. 括號符號() 看作整體

作用1. 指定信息進行整體匹配

grep "oldb[oe]y" oldboy_test.txt

grep -E "oldb(oe)y" oldboy_test.txt

作用2. 進行后項引用前項使用: sed命令替換功能

echo oldboy{01..10}|xargs -n1

? ? oldboy01

? ? oldboy02

? ? oldboy03

? ? oldboy04

? ? oldboy05

? ? oldboy06

? ? oldboy07

? ? oldboy08

? ? oldboy09

? ? oldboy10

echo oldboy{01..10}|xargs -n1|sed -r 's#(.*)#useradd \1#g' | bash

# \1代表后項引用前項 xargs -n1代表換行顯示 -r代表拓展命令

把每一行的內(nèi)容都放在(.*)中? 最后要放到bash解釋器中 不然只會輸出 不會執(zhí)行命令

面試題: 批量創(chuàng)建用戶 oldboy01..oldboy10,并給每個用戶設置密碼信息,默認初始化密碼(123456)

seq -w 10|sed -r 's#(.*)#useradd oldboy\1;echo 123456|passwd --stdin oldboy\1#g?

stdin標準輸入

將輸出的信息

echo 123456 ==> 轉換為 <123456>進行顯示

echo 123456|sed -r 's#(.*)#<\1>#g'

sed -r 's#([1-6]+)#<\1>#g'

echo 123456 ==> 轉換為 <12><34><56>進行顯示

[root@oldboyedu ~]# echo 123456|sed -r "s#(12)(34)(56)#<\1><\2><\3>#g"

? ? <12><34><56>

[root@oldboyedu ~]# echo 123456|sed -r "s#(12)(34)(56)#<\1><><\3>#g"

? ? <12><><56>?

[root@oldboyedu ~]# echo 123456|sed -r "s#(12)(34)(56)#<\1><\3><\3>#g"

? ? <12><56><56>

[root@oldboyedu ~]# echo 123456|sed -r "s#(..)(..)(..)#<\1><\2><\3>#g"

? ? <12><34><56>

5.括號符號{} (可以指定字符連續(xù)匹配的次數(shù))

第一種情況: x{n,m} 表示前一個字符至少連續(xù)出現(xiàn)n次,最多出現(xiàn)m次

grep -E "0{2,3}" oldboy_test.txt

grep -E "0{2,4}" oldboy_test.txt -o

第二種情況: x{n} 表示前一個字符正好連續(xù)出現(xiàn)了n次

grep -E "0{2}" oldboy_test.txt

第三種情況: x{n,} 表示前一個字符至少連續(xù)出現(xiàn)n次,最多出現(xiàn)多少次不限

grep -E "0{2,}" oldboy_test.txt

?第四種情況: x{,m} 表示前一個字符至少連續(xù)出現(xiàn)0次,最多出現(xiàn)m次

grep -E "0{,2}" oldboy_test.txt


6.? 問號符號 ?

? 定義匹配前一個字符出現(xiàn)0或者1次

7. 拓展的正則表達式總結

* 匹配前一個字符出現(xiàn)0次或者多次

+? 匹配前一個字符出現(xiàn)1次或者多次

{} 匹配前一個字符指定出現(xiàn)多少次,至少0次

?? 匹配前一個字符出現(xiàn)0次或者1次

8.利用ip address show eth0只把IP地址信息顯示出來

ip a s eth0|egrep "[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+" -o|head -1

10.0.0.200


?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容