命令的2種替換形式 $()和 ``
示例:截斷字串
a):#擷取檔名稱
var1=$(basename /home/aimybbe/bash/test.sh)
echo $var1
#擷取目錄
var2=$(dirname /home/aimybbe/bash/test.sh)
echo $var2
b):var1=`basename /home/aimybbe/bash/test.sh`
echo $var1
var2=$(dirname /home/aimybbe/bash/test.sh)
echo $var2
更專業的字串擷取方法:
示例:testfile.tar.gz
a)獲取字尾名
你想擷取 tar.gz
filename=testfile.tar.gz
file=$
echo $file
你想擷取 gz
filename=testfile.tar.gz
file=$
echo $file
說明:這裡的$什麼意思呢?在 $ 中輸入環境變數名稱,兩個##(或乙個#),然後是萬用字元 ("*.")。
然後,bash 取得 filename,找到從字串 "testfile.tar.gz"開始處開始、且匹配萬用字元 "*."的最長子字串(或最短),然後將其從字串的開始處截去。
注意:1.#意思是從字串的開始處開始擷取。
2.兩個##代表匹配的最大長度,乙個#代表匹配的最小長度(也就是說這裡不是乙個#匹配乙個『.』)
b)獲取檔名稱(也就是去除字尾名)
你想擷取testfile.tar
filename=testfile.tar.gz
file=$
echo $file
你想擷取testfile
filename=testfile.tar.gz
file=$
echo $file
注意:1.這個方法和上面原理相同%就是從末尾字串開始擷取,%%就是最大長度,%就是最小長度
c)擷取任意的字元
你想擷取file
filename=testfile.tar.gz
file=$
echo $file
你想擷取test
filename=testfile.tar.gz
file=$
echo $file
說明:格式為$第乙個':'後面的數字是字串的索引從左邊開始,索引從0開始,第二個':'後面的數字是長度,兩處的數字都是十進位制數值。
bash字串擷取 匹配
字串匹配特定起始 結尾 子串 1.指定字元匹配字串 去左留右,去右留左,不匹配則保留整個字串 string a a b c d d echo a b c d d echo d echo a a b c d echo a echo 提取 a 左側內容 a 2.指定位置擷取 左側0起始,右側0 1起始 ...
Bash中的字串擷取
1.按子串分割擷取 從左往右,刪除最短的乙個以string結尾的子串,即擷取第乙個string子串之後的字串 從左往右,刪除最長的乙個以string結尾的子串,即擷取最後乙個string子串之後的字串 從右往左,刪除最短的乙個以string開頭的子串,即擷取最後乙個string子串之前的字串 從右往...
bash 字串擷取,替換,刪除,條件賦值
字串按位置切片 root localhost scripts var 23dfja root localhost scripts echo 23d root localhost scripts echo dfja字串模式 模式 字串按模式切片 只能從行首或行尾開始切,不能切中間部分 root fa ...