Bash Shell字串操作總結

2022-07-22 04:24:11 字數 1473 閱讀 7743

1. 取長度

str="

abcd

"expr length $str #

4echo $ #

4expr

"$str

" : "

.*" # 4

一般使用第二種比較多

2. 查詢子串的位置

str="

abc"

expr index $str "a

" # 1

expr index $str "b

" # 2

expr index $str "x

" # 0

expr index $str

"" # 0

3. 選取子串

str="

abcdef

"expr substr

"$str"1

3# 從第乙個位置開始取3個字元, abc

expr substr

"$str"2

5# 從第二個位置開始取5個字元, bcdef

expr substr

"$str"4

5# 從第四個位置開始取5個字元, def

echo $ # 從第二個位置開始提取字串, bcdef

echo $ # 從第二個位置開始提取3個字元, bcd

echo $ # 從倒數第二個位置向左提取字串, abcde

echo $ # 從倒數第二個位置向左提取6個字元, cde

4. 擷取子串

str="

abbc,def,ghi,abcjkl

"echo $ # ,def,ghi,abcjkl 乙個井號(#) 表示從左邊擷取掉最短的匹配 (這裡把abbc字串去掉)

echo $ # jkl, 兩個井號(##) 表示從左邊擷取掉最長的匹配 (這裡把abbc,def,ghi,abc字串去掉)

echo $ # 空,因為str中沒有子串"

a*c"

echo $[str##

"a*c

"} # 空,同理

echo $ # ,ghi,abcjkl

echo $ # abbc,def,ghi 乙個百分號(%)表示從右邊擷取最短的匹配

echo $ # a 兩個百分號表示(%%)表示從右邊擷取最長的匹配

echo $ # abbc,def,ghi,abcjkl

可以這樣記憶,在鍵盤布局中,井號(#)總是位於百分號(%)的左邊(即前面)    :-)

5. 字串替換

str="

"echo $$ # 當然這樣寫 $s1$s2 也行,但最好加上大括號

**:

Bash shell 字串操作符詳解

本文詳細介紹一下bash shell字串操作的有關內容。首先需要明白的一點是我們通常所用的變數替代 varname 其實是 的一種簡寫形式。其次,需要知道字串操作的核心思想是 bash shell字串操作是通過在變數名 varname 和閉花括號 之間插入操作符來完成的。模式匹配操作符 變數長度 擴...

bash shell字元操作

bash shell字元操作 計算字元長度 expr length string expr string 這個方法真 從開始位置匹配子串長度 expr string substring substring為正則 expr match string substring substring為正則 匹配到...

Bash Shell指令碼字串截斷

1.字元截斷 如果是一般路徑的字元截斷可以用basename和dirname這兩個工具 basename可以從乙個檔案路徑中截乙個檔名 例如 basename home file tar file tar dirname可以從乙個檔案路徑中截到乙個目錄路徑 例如 dirname home file ...