shell 變數內容刪除 替換

2022-08-13 17:21:15 字數 2630 閱讀 9547

鳥哥例項練習

變數設定方式說明$

若變數內容從頭開始的資料符合「關鍵字」,則將符合的最短資料刪除

$若變數內容從頭開始的資料符合「關鍵字」,則將符合的最短資料刪除

$若變數內容從尾向前的資料符合「關鍵字」,則將符合的最短資料刪除

$若變數內容從尾向前的資料符合「關鍵字」,則將符合的最長資料刪除

$若變數內容符合「舊字串」,則第乙個舊字串會被新字串替換

$若變數內容符合「舊字串」,則全部的舊字串會被新字串替換

設定個變數用於練習

[root@piero ~]# echo $path

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

[root@piero ~]# export path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin"

[root@piero ~]# echo $path

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

刪除:#  ,##,%,%%,*     等配合echo  $

# echo $

/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

#代表內容變數的最前開始向右刪除,由/開始,*表示萬用字元0到無窮個字元

# echo $

/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

#最短匹配

# echo $

/root/bin

##最長匹配

# echo $path

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

# echo $

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:

%從右往左匹配

echo $

/usr/local/sbin:/usr/local/bin:

echo $

[root@izwz96z5n0mtqtsen3cfs9z mj]# echo $mail

/var/spool/mail/root

[root@izwz96z5n0mtqtsen3cfs9z mj]# echo $

spool/mail/root

[root@izwz96z5n0mtqtsen3cfs9z mj]# echo $

/var/spool/mail

替換:

# echo $

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

# echo $

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

關於-[root@izwz96z5n0mtqtsen3cfs9z mj]# unset str;var=$

[root@izwz96z5n0mtqtsen3cfs9z mj]# echo var=$ str=$

var=newvar str=

[root@izwz96z5n0mtqtsen3cfs9z mj]# str="oldvar";var=$

[root@izwz96z5n0mtqtsen3cfs9z mj]# echo var=$ str=$

var=oldvar str=oldvar

var的值取決於str是否存在,-並不影響舊變數的內容

關於+[root@izwz96z5n0mtqtsen3cfs9z mj]# unset str;var=$

[root@izwz96z5n0mtqtsen3cfs9z mj]# echo var=$ str=$

var= str=

[root@izwz96z5n0mtqtsen3cfs9z mj]# str=oldvar;var=$

[root@izwz96z5n0mtqtsen3cfs9z mj]# echo var=$ str=$

var=newvar str=oldvar

關於=[root@izwz96z5n0mtqtsen3cfs9z mj]# unset str;var=$

[root@izwz96z5n0mtqtsen3cfs9z mj]# echo var=$ str=$

var=newvar str=newvar

會替換舊變數的值

[root@izwz96z5n0mtqtsen3cfs9z mj]# str=oldvar;var=$

[root@izwz96z5n0mtqtsen3cfs9z mj]# echo var=$ str=$

var=oldvar str=oldvar

變數測試

[root@izwz96z5n0mtqtsen3cfs9z mj]# str="oldvar";var=$

[root@izwz96z5n0mtqtsen3cfs9z mj]# echo var=$ str=$

var=oldvar str=oldvar

shell 變數刪除與替換

1 從左往右刪除匹配內容 root localhost echo 獲取變數值 root localhost echo 獲取變數長度 16 root localhost echo 從左往右最短匹配 root localhost echo 從左往右最長匹配 cn2 從右往左刪除匹配內容 root loc...

linux變數內容的刪除和替換

shell內建了對變數進行刪除和替換的功能,非常的方便。雖然平時用的機會非常少,但是閱讀別人寫的指令碼時,會經常遇到。所以進行乙個學習總結。從變數頭部開始匹配模式,將符合的最短資料刪除 從變數頭部開始匹配模式,將符合的最長資料刪除 從變數尾部開始匹配模式,將符合的最短資料刪除 從變數尾部開始匹配模式...

Shell 批量替換 刪除檔案中的內容

大量檔案修改同一內容 find name xml xargs perl pi e s 修改前內容 修改後內容 g 此方法用完後會出現檔案丟失問題,不懂為何。我一一對應找到丟失檔案,重新貼上複製提示檔案還在此資料夾下,只不過隱身了。乙個文件修改大量相同內容 sed i s 修改前內容 修改後內容 g ...