Shell 對字串的操作

2021-07-25 03:18:34 字數 1972 閱讀 7845

1.其主要是利用了shell內建的一系列字串操作符號.具體的相關操作符號介紹如下:

$                               

$string的長度

$在$string中,從位置$position開始提取子串

$在$string中,從位置$position開始提取長度為$length的子串

$從變數$string的開頭,刪除最短匹配$substring的子串

$從變數$string的開頭,刪除最長匹配$substring的子串

$從變數$string的結尾,刪除最短匹配$substring的子串

$從變數$string的結尾,刪除最長匹配$substring的子串

$使用$new,來代替第乙個匹配的$old

$使用$new,代替所有匹配的$old

$                  

替換開頭.如果$string以$old開頭,那麼就用$new替換

$                 

替換結尾.如果$string以$old結尾,那麼就用$new替換

2.路徑字串處理

dirname $    取目錄部分

basename $   取檔名部分

basename $ $  取檔名部分,並且去掉指定的副檔名

注意:不能使用正規表示式,只能使用?*的shell擴充套件.

例:

利用$將環境變數path的各個目錄分開,每行顯示乙個. 1

echo

-e $

將$path內所有的":"換成"\n",並通過echo -e輸出.

echo的-e引數,特別處理一些字元,若沒有-e,則"\n"以字元的形式輸出.

使用內部操作符代替awk,sed等外部程式,可以省略啟動外部程式的時間,加快整個shell程式的執行.

一般情況,優先選擇shell內部操作符,若內部操作符無法完成相應的功能,再考慮awk,sed等外部程式.

3.利用正規表示式處理

pathnum = echo "$" |grep -o ,|wc -l           #查詢newvalue中的『,』的個數

$                               從左向右擷取最後乙個string後面的字元

$                                從左向右擷取第乙個string後面的字元

$                               從左向右擷取第乙個string前面的字元

$                                從左向右擷取最後乙個string前面的字元

$                                 

擷取變數var 從n1到n2的字串

例:比如var="xml.helloword.xml",string="."那麼

$="xml"

$="helloword.xml"

$="xml"

$="xml.helloword"

這裡解釋下,*string和string***萬用字元,就是匹配到的字串,有可能匹配乙個兩個或多個,屬於字串的子字串,比如例子中*.對應xml.和xml.helloword.,.*對應.helloword.xml和.xml。那麼##是從字串中去除匹配到的最長的那個子字串,#就是最短的咯,**和*同理,但是#和*的區別在於#是從字串左邊開始去除,而*是從字串右邊也就是尾端開始去除。

4、利用linux命令

grep是搜尋,比如某一行中含有你需要的字串啊,等

cut就是擷取第幾個字元啊,以某個分隔符為界啊等等

sed替換啊,刪除啊,新增,選取某一行啊

awk就是一行中分成幾個欄位來處理,$1,$2,$3,$0等,查下手冊就知道了

shell字串操作

1,字串剪裁 file dir1 dir2 dir3 my.file.txt 我們可以用 分別替換獲得不同的值 拿掉第一條 及其左邊的字串 dir1 dir2 dir3 my.file.txt 拿掉最後一條 及其左邊的字串 my.file.txt 拿掉第乙個 及其左邊的字串 file.txt 拿掉最...

shell 字串操作

字串長度 expr length string expr string 從字串開始的位置匹配子串的長度 expr match string substring substring 是乙個正規表示式 expr string substring substring 是乙個正規表示式 索引expr ind...

shell字串操作

linux shell 字串操作 長度,查詢,替換 詳解 在做shell批處理程式時候,經常會涉及到字串相關操作。有很多命令語句,如 awk,sed都可以做字串各種操作。其實shell內建一系列操作符號,可以達到類似效果,大家知道,使用內部操作符會省略啟動外部程式等時間,因此速度會非常的快。一 判斷...