bash 字串擷取

2021-09-01 19:19:54 字數 1324 閱讀 8787

命令的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 ...