shell指令碼中進行字元刪除操作 使用 # 和 % 進行匹配刪除,具體的# 和 % 的總結如下:
$ # 從頭開始匹配,最短刪除
$ # 從頭開始匹配,最長刪除
$ # 從尾部開始匹配,最短刪除
$ # 從尾部開始匹配,最長刪除
$ # 替換變數內的舊字串為新字串,只替換第乙個
$ # 替換變數內的舊字串為新字串,全部替換
下面舉幾個例子進行說明
1.關於#的替換規則
~$ vari_1="i love you,do you love me"
~$ echo $vari_1
i love you,do you love me
# 只有乙個#的時候 匹配到第乙個 ov 之後就停下來了
~$ var1=$
~$ echo $var1
e you,do you love me # 匹配到第乙個 ov停下
#配到最後乙個ov 最後乙個ov之前的全部刪除
~$ var1=$
~$ echo $var1
e me
2.關於%的替換規則
# %和#順序剛好是相反的 單個% 是從後向前擷取,碰到倒數第乙個ov 刪除 最後乙個ov之後的字串
~$ var1=$
~$ echo $var1
i love you,do you l
# %% 是從後匹配 一直匹配到第乙個 ov出現的位子,保留字串開始到 第一次ov出現的位置
~$ var1=$
~$ echo $var1
i l
3.關於 /和 //的匹配規則
# 單個/ 只是將第乙個love替換為 大寫的 love
~$ var1=$
~$ echo $var1
i love you,do you love me
# // 是將全部的love替換為 大寫的 love
~$ var1=$
~$ echo $var1
i love you,do you love me
shell指令碼變數替換
bin bash variable 1 me i love you,do you love me girl i don t love you,go away n 從變數開頭進行匹配,將符合匹配最短的字串刪除 echo befor delete variable 1 var1 echo after d...
shell指令碼之變數替換
shell提供了變數替換功能,使使用者能夠檢查變數的值並根據選項改變它的值。variable 儲存在variable中的值 儲存在variable中的值 如果variable的值非空,則值為variable,否則值為string 如果variable的值非空,則值為string,否則值為空 如果va...
shell 變數替換問題
今天遇到了乙個sed替換的問題,背景是,我需要替換某乙個yaml 檔案的某乙個key值為乙個變數。採用以下的 substring s source source g targetfile yaml sed i 這個時候會報sed e expression 1,char 34 unknown opti...