shell 指令碼 變數替換總結

2021-09-28 21:29:15 字數 1121 閱讀 6144

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...