shell中的正則表達式, and和or寫法, vim中的查找和替換用法, 正則中的posix字符類


1. shell中的正則和原生的正則有些許出入, 以下列舉了shell中的正則規則:

    

  圖中\number 代表前面對應()位置的內容, 類似於python中的命名分組, \對應數字可直接引用括號中內容

 

  注意擴展正則元字符的使用結果可能和預期有差異, 對比擴展和基本兩個截圖, 會發現, 同樣的一個字符, 會使用\, 這就是

 問題所在, 在grep中默認使用的都是基本元字符, 要想使用擴展元字符可在對應位置加\ 或者使用egrep來代替grep命令.

 

 

 

2. shell中的正則使用舉例:

 雙括號的額外含義, 其內可使用正則表達式, 並不表示正則必須在雙括號中才能執行;

 [[ 10 =~ ^[0-9]+$ ]] 用於shell中判定是否是數字, 注意正則處不要加引號, 加引號表示字符串匹配; 取反在10前加嘆號即可;
 shell中這些命令都是根據正則規則來解析的, 有vi, grep, sed, awk, python, vim;

 

3. vim中使用正則進行查找與替換:

 vim編輯器中的替換, %表示全文, 即第一行到最后一行. s表示替換, 完整命令如下:
 : %s/xx/XX/ # 表示把小寫xx換為大寫的, 只替換第一個, 無論第一個是否是單純的xx或包含其他字符的
 : %s/ss/SS/g # 替換全局, 所有包含ss的都替換, 無論ss是否是單獨的.
 : %s/\<ss\>/SS/g # \< \>用於限定詞首和詞尾, 限定ss兩邊不能有字母, 標點除外
 正則中嚴格區分大小寫, shell中匹配不會嚴格區分

 

4. shell中的and和or用法舉例:

 [ 1 -lt 2 -a 5 -gt 10 ]  [ 1 -lt 2 -o 5 -gt 10 ]

 [[ 1 -lt 2 && 5 -gt 10 ]]    [[ 1 -lt 2 || 5 -gt 10 ]]            # 等價於上面的寫法


免責聲明!

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



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