shell中處理字串小結:
假定在shell中有這麼乙個字串:x="abcd"
一、求字串的長度
方法一通過 expr 命令 加length引數 expr length $x,會列印出4
4方法二 (推薦用這種。原因?你懂得……)
echo $
4方法三
expr "$x" : ".*"
4二、查詢字串
注意:返回的索引是從1開始, 失敗則返回0
expr index $x "b"
2expr index $x "a"
1expr index $x "b"
2expr index $x "c"
3expr index $x "d"
4三、得到子字串
方法一# expr startpos length
expr substr "$x" 1 3
abcexpr substr "$x" 1 5
abcd
expr substr "$x" 2 5
bcd方法二
#通過這個方式 $
echo $
bcdecho $
cdecho $
abcd
echo $
abpos=1
len=2
echo $
bc四、列印匹配的長度
expr match $x "."
1expr match $x "abc"
3expr match $x "bc"
0五、字串的掐頭去尾
x=aabbaarealwwvvww
echo "$"
aabbaarealwwvv
echo "$"
aabbaareal
echo "$"
lwwvvww
echo "$"
bbaarealwwvvww
我是按照下面這種記憶法:
其中 , # 表示掐頭, 因為鍵盤上 # 在 $ 的左面。
其中 , % 表示%, 因為鍵盤上 % 在 $ 的右面。
單個的表示最小匹配,雙個表示最大匹配。
也就是說,當匹配的有多種方案的時候,選擇匹配的最大長度還是最小長度。
六、字串的替換
x=abcdabcd
echo $ # 只替換乙個
bbcdabcd
echo $ # 替換所有
bbcdbbcd
七、bash中 利用 $ 還可針對不同的變數狀態賦值(沒設定、空值、非空值)
$ :假如 $shell_var 沒有設定,則使用 init_value 作返回值。(空值及非空值時不作處理)
$ :假如 $shell_var 沒有設定或為空值,則使用 init_value 作返回值。 (非空時時不作處理)
$ :假如 $shell_var 設為空值或非空值,均使用 init_value 作返回值。(沒設定時不作處理)
$ :若 $shell_var 為非空值,則使用 init_value 作返回值。 (沒設定及空值時不作處理)
$ :若 $shell_var 沒設定,則使用 init_value 作返回值,同時將 $shell_var 賦值為 init_value 。 (空值及非空值時不作處理)
$ :若 $shell_var 沒設定或為空值,則使用 init_value 作返回值,同時將 $shell_var 賦為 init_value 。 (非空值時不作處理)
$ :若 $shell_var 沒設定,則將 init_value 輸出至 stderr。 (空值及非空值時不作處理)
$ :若 $shell_var 沒設定或為空值,則將 init_value 輸出至 stderr。 (非空值時不作處理)。
shell字串處理
一 構造字串 直接構造 str zero hello str first i am a string str second success 重複多次 repeat the first parm 1 by 2 times strrepeat 舉例 str repeat strrepeat user n...
shell 字串處理
一 號擷取,刪除左邊字元,保留右邊字元。echo 其中 var 是變數名,號是運算子,表示從左邊開始刪除第乙個 號及左邊的所有字元 即刪除 http 結果是 www.google.com test.htm 二 號擷取,刪除左邊字元,保留右邊字元。echo 表示從左邊開始刪除最後 最右邊 乙個 號及左...
SHELL字串處理
linux 的字串擷取很有用。有八種方法。假設有變數 var 1.號擷取,刪除左邊字元,保留右邊字元。複製 如下 echo 其中 var 是變數名,號是運算子,表示從左邊開始刪除第乙個 號及左邊的所有字元 即刪除 http 結果是 www.aaa.com 123.htm 2.號擷取,刪除左邊字元,保...