grep -o -E


sed 命令可以很好的進行行匹配,但從某一行中精確匹配某些內容,則使用 grep 命令並輔以 -o 和 -E 選項可達到此目的。其中 -o 表示“only-matching”,即“僅匹配”之意。光用它不夠,配合 -E 選項使用擴展正則表達式則威力巨大。

 

比如下面有一條文本 tmp.txt ,其中內容為:

 

{"aid":45,"path":"attachment/Mon_1112/2_1_5728040df3ab346.jpg"}

 

我們想從中過略出 aid 的值即 45 ,那么可以先如下這么做:

 

grep -o -E 'aid":[1-9]*' tmp.txt

 

得到的結果為:

 

aid":45

 

這時就好辦了,我們可以使用 awk 的 -F 選項指示出冒號分隔符,這樣就容易過濾出 45 這個值來,整個命令綜合如下:

 

grep -o -E 'aid":[1-9]*' tmp.txt |awk-F: '{print $2}'


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM