shell字串擷取方法

2022-07-02 22:39:10 字數 3066 閱讀 6010

shell中擷取字串的方法有很多中,

$一共有9種使用方法。$$

$$ 上面4種可以用來進行預設值的替換。

$上面這種可以獲得字串的長度

$ 最小限度從後面擷取word

$ 最大限度從後面擷取word

$ 最小限度從前面擷取word

$ 最大限度從前面擷取word

上面4個就是用來擷取字串的方法了。

有了著四種用法就不必使用cut命令來擷取字串了

第一種又可以分為四種情況,下面一一介紹。

1、使用 # 號操作符。用途是從左邊開始刪除第一次出現子字串即其左邊字元,保留右邊字元。

用法為#*substr,例如:

str='http://www.你的網域名稱.com/cut-string.html'

echo $

得到的結果為www.你的網域名稱.com/cut-string.html,即刪除從左邊開始到第乙個"//"及其左邊所有字元

2、使用 ## 號操作符。用途是從左邊開始刪除最後一次出現子字串即其左邊字元,保留右邊字元。

用法為##*substr,

例如:str='http://www.你的網域名稱.com/cut-string.html'

echo $

得到的結果為cut-string.html,即刪除最後出現的"/"及其左邊所有字元

3、使用 % 號操作符。用途是從右邊開始刪除第一次出現子字串即其右邊字元,保留左邊字元。

用法為%substr*,

例如:str='http://www.你的網域名稱.com/cut-string.html'

echo $

得到的結果為http://www.你的網域名稱.com,即刪除從右邊開始到第乙個"/"及其右邊所有字元

4、使用 %% 號操作符。用途是從右邊開始刪除最後一次出現子字串即其右邊字元,保留左邊字元。

用法為%%substr*,例如:

str='http://www.你的網域名稱.com/cut-string.html'

echo $

得到的結果為http://www.你的網域名稱.com,即刪除從右邊開始到最後乙個"/"及其右邊所有字元

第二種也分為四種,分別介紹如下:

1、從左邊第幾個字元開始以及字元的個數,用法為:start:len,例如:

str='http://www.你的網域名稱.com/cut-string.html'

echo $

其中的 0 表示左邊第乙個字元開始,5 表示字元的總個數。

結果是:http:

2、從左邊第幾個字元開始一直到結束,

用法為:start,例如:

str='http://www.你的網域名稱.com/cut-string.html'

echo $

其中的 7 表示左邊第8個字元開始

結果是:www.你的網域名稱.com/cut-string.html

3、從右邊第幾個字元開始以及字元的個數,

用法:0-start:len,例如:

str='http://www.你的網域名稱.com/cut-string.html'

echo $

其中的 0-6 表示右邊算起第6個字元開始,10 表示字元的個數。

結果是:cut-string

3、從右邊第幾個字元開始一直到結束,用法:0-start,例如:

str='http://www.你的網域名稱.com/cut-string.html'

echo $

其中的 0-6 表示右邊算起第6個字元開始,10 表示字元的個數。

結果是:html

注:(左邊的第乙個字元是用 0 表示,右邊的第乙個字元用 0-1 表示)

linux 的字串擷取很有用。有八種方法。

假設有變數 var=

1. # 號擷取,刪除左邊字元,保留右邊字元。

echo $

其中 var 是變數名,# 號是運算子,*// 表示從左邊開始刪除第乙個 // 號及左邊的所有字元

即刪除 http://

結果是 :www.aaa.com/123.htm

2. ## 號擷取,刪除左邊字元,保留右邊字元。

echo $

##*/ 表示從左邊開始刪除最後(最右邊)乙個 / 號及左邊的所有字元

即刪除

結果是 123.htm

3. %號擷取,刪除右邊字元,保留左邊字元

echo $

%/* 表示從右邊開始,刪除第乙個 / 號及右邊的字元

結果是:

4. %% 號擷取,刪除右邊字元,保留左邊字元

echo $

%%/* 表示從右邊開始,刪除最後(最左邊)乙個 / 號及右邊的字元

結果是:http:

5. 從左邊第幾個字元開始,及字元的個數

echo $

其中的 0 表示左邊第乙個字元開始,5 表示字元的總個數。

結果是:http:

6. 從左邊第幾個字元開始,一直到結束。

echo $

其中的 7 表示左邊第8個字元開始,一直到結束。

結果是 :www.aaa.com/123.htm

7. 從右邊第幾個字元開始,及字元的個數

echo $

其中的 0-7 表示右邊算起第七個字元開始,3 表示字元的個數。

結果是:123

8. 從右邊第幾個字元開始,一直到結束。

echo $

表示從右邊第七個字元開始,一直到結束。

結果是:123.htm

注:(左邊的第乙個字元是用 0 表示,右邊的第乙個字元用 0-1 表示)

Shell 字串擷取方法

shell下擷取字串的功能非常少,不過有時在判斷字串字首或是字尾時卻非常重要。這裡說的shell不包含bash和csh,主要是給freebsd下sh指令碼使用的。例如下面的乙個列子 prg info name make mke info act bin make foo foo prg info n...

Shell 字串擷取方法

linux 的字串擷取很有用。有八種方法。假設有變數 var 1.號擷取,刪除左邊字元,保留右邊字元。複製 如下 echo 其中 var 是變數名,號是運算子,表示從左邊開始刪除第乙個 號及左邊的所有字元 即刪除 http 結果是 www.aaa.com 123.htm 2.號擷取,刪除左邊字元,保...

shell擷取字串方法

shell中擷取字串的方法有很多中,一共有9種使用方法。上面4種可以用來進行預設值的替換。上面這種可以獲得字串的長度。最小限度從後面擷取word 最大限度從後面擷取word 最小限度從前面擷取word 最大限度從前面擷取word 上面4個就是用來擷取字串的方法了。有了著四種用法就不必使用cut命令來...