shell字串處理

2021-07-25 23:36:57 字數 2161 閱讀 3120

一: 求字串長度

格式如下:

1. $

2. expr length $string

二: 字串索引

格式如下

expr index $string $substring

注:expr索引命令的功能是在字串$string上匹配$substring中字元第一次出現的位置,若在$string上匹配不到$substring中的任何字元,expr index返回0

三: expr match

在開頭匹配字串,格式如下

expr match $string $substring

注:expr match命令在string的開頭匹配substring字串,返回匹配到的substring字串的長度,若string的開頭匹配不到substring,則返回0,,substring既可以是字串也可以是正規表示式

四:  抽取子串

bash shell 提供兩種命令$和expr實現抽取子串功能,$有兩種格式,格式如下

1. $

2 .$

注:第1種格式命令從名稱為$string的字串的第$position個位置開始抽取子串,第2種格式命令在第1種格式命令的基礎上新增了$length變數,表示從名稱為$string的字串的第$position個位置開始抽取長度為$length的子串,需要注意的是,$格式的命令是從0開始對名稱為$string的字串進行標號

$和$都是從string的左邊開始技術抽取子串,$命令還提供了從string的右邊開始計數抽取子串的功能,有以下兩種格式

1. $                           //冒號和橫桿符號之間有乙個空格

2. $                          //冒號和左括號之間未必要有空格,length要以-號開頭

注: 從$string的右邊抽取長度為$length的的子串

expr 抽取子串命令格式如下

expr substr $string $position $length

注: expr substr命令與$命令最大的不同之處在於expr substr命令是從1開始對名稱為$string的字串進行編號的,另外,expr substr命令中的$length是必不可少的,如果缺少$length引數,將報expr語法錯誤

接下來我們介紹使用正規表示式抽取子串命令,是用正規表示式只能抽取string開頭處或結尾處的子串,抽取string開頭處子串的命令格式有以下兩種格式

利用正規表示式,抽取string結尾處子串的命令同樣有以下兩種格式

五: 刪除子串 

與抽取子串相反,刪除子串是指將原字串中符合條件的子串刪除,刪除子串命令只有$格式的,但是,刪除子串命令可以分為從開頭處刪除和從結尾處刪除兩種不同的命令。首先,我們介紹從開頭處刪除子串的命令,有以下兩種格式

1. $                            //刪除string開頭處與substring匹配的最短子串

2. $                          //刪除string開頭處與substring匹配的最長子串

從結尾處刪除子串,格式如下:

1. $                            //刪除string結尾處與substring匹配的最短子串

2. $                        //刪除string結尾處與substring匹配的最長子串

注: substring不是正規表示式,但是可以在substring中使用*字元,其中*字元有特殊的意義,表示起始字元和終止字元之間的任意字元

六: 替換子串

替換子串都是$格式的,可以在任意處(也包括開頭處和結尾處)替換滿足條件的子串,首先介紹在任意處替換子串的命令,有以下兩種格式

1. $        //僅替換第一次與substring相匹配的子串

2. $       //替換所有與substring相匹配的子串

替換子串命令還有兩種格式,分別為在string開頭處和結尾處替換與substring相匹配的子串,格式為

1. $       //替換string開頭處與substring相匹配的子串

2. $     //替換string結尾處 與substring相匹配的子串

注: substring不是正規表示式,但是可以在substring中使用*字元,其中*字元有特殊的意義,表示起始字元和終止字元之間的任意字元

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