學(xué)習(xí)Grep,Sed中的正則 | 火丁筆記
?
學(xué)習(xí)Grep,Sed中的正則
?
正則要是幾天不學(xué)習(xí)不用功,肯定會忘得一干二凈,下面聊聊Grep,Sed中的正則。
?
問題:從一個文本文件里篩選出含有電話號碼的行,電話號碼是由七位或者八位阿拉伯?dāng)?shù)字組成(開頭不是零),并且被單引號或者雙引號包裹。
鑒于問題的需要,先杜撰一份數(shù)據(jù):
shell> cat /path/to/data.txt '7654321' '7654321" "87654321" "87654321'失敗的嘗試
shell> grep "(['\"])[1-9][0-9]{6,7}\1" /path/to/data.txt grep: Invalid back reference shell> sed -n "/(['\"])[1-9][0-9]{6,7}\1/p" /path/to/data.txt sed: -e expression #1, char 25: Invalid back reference成功的嘗試
使用Basic Regular Expressions (BRE)
shell> grep "\(['\"]\)[1-9][0-9]\{6,7\}\1" /path/to/data.txt '7654321' "87654321" shell> sed -n "/\(['\"]\)[1-9][0-9]\{6,7\}\1/p" /path/to/data.txt '7654321' "87654321"使用Extended Regular Expressions (ERE)
shell> grep -E "(['\"])[1-9][0-9]{6,7}\1" /path/to/data.txt '7654321' "87654321" shell> sed -n -r "/(['\"])[1-9][0-9]{6,7}\1/p" /path/to/data.txt '7654321' "87654321"總結(jié):Grep和Sed同時支持BRE和ERE兩種正則,缺省情況下,Grep和Sed使用的都是BRE正則,通過增加命令參數(shù)(grep -E / sed -r),Grep和Sed可以支持ERE正則。
BTW: Regular expression From Wikipedia, the free encyclopedia
?
This entry was posted in Technical and tagged Grep , Linux , Regex , Sed , Shell by 老王 . Bookmark the permalink .
?
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
