SHELL 處理處理字串的小結

2021-06-28 00:43:48 字數 1930 閱讀 6720

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.號擷取,刪除左邊字元,保...