溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

有哪些shell字符串操作方法

發(fā)布時間:2021-09-30 11:44:27 來源:億速云 閱讀:105 作者:iii 欄目:開發(fā)技術

本篇內容主要講解“有哪些shell字符串操作方法”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“有哪些shell字符串操作方法”吧!

1,取得字符串長度

代碼如下:

string=abc12342341          //等號二邊不要有空格
echo ${#string}             //結果11
expr length $string         //結果11
expr "$string" : ".*"       //結果11 分號二邊要有空格,這里的:根match的用法差不多

2,字符串所在位置

代碼如下:

expr index $string '123'    //結果4 字符串對應的下標是從0開始的


這個方法讓我想起來了js的indexOf,各種語言對字符串的操作方法大方向都差不多,如果有語言基礎的話,學習shell會很快的。

3,從字符串開頭到子串的最大長度

代碼如下:

expr match $string 'abc.*3' //結果9

個人覺得這個函數(shù)的用處不大,為什么要從開頭開始呢。

4,字符串截取

代碼如下:

echo ${string:4}      //2342341  從第4位開始截取后面所有字符串
echo ${string:3:3}    //123      從第3位開始截取后面3位
echo ${string:3:6}    //123423   從第3位開始截取后面6位
echo ${string: -4}    //2341  :右邊有空格   截取后4位
echo ${string:(-4)}   //2341  同上
expr substr $string 3 3   //123  從第3位開始截取后面3位

上面的方法讓我想起了,php的substr函數(shù),后面截取的規(guī)則是一樣的。

5,匹配顯示內容

代碼如下:

//例3中也有match和這里的match不同,上面顯示的是匹配字符的長度,而下面的是匹配的內容
expr match $string '\([a-c]*[0-9]*\)'  //abc12342341
expr $string : '\([a-c]*[0-9]\)'       //abc1
expr $string : '.*\([0-9][0-9][0-9]\)' //341 顯示括號中匹配的內容


這里括號的用法,是不是根其他的括號用法有相似之處呢,

6,截取不匹配的內容

代碼如下:

echo ${string#a*3}     //42341  從$string左邊開始,去掉最短匹配子串
echo ${string#c*3}     //abc12342341  這樣什么也沒有匹配到
echo ${string#*c1*3}   //42341  從$string左邊開始,去掉最短匹配子串
echo ${string##a*3}    //41     從$string左邊開始,去掉最長匹配子串
echo ${string%3*1}     //abc12342  從$string右邊開始,去掉最短匹配子串
echo ${string%%3*1}    //abc12     從$string右邊開始,去掉最長匹配子串

這里要注意,必須從字符串的第一個字符開始,或者從最后一個開始,

7,匹配并且替換

代碼如下:

echo ${string/23/bb}   //abc1bb42341  替換一次
echo ${string//23/bb}  //abc1bb4bb41  雙斜杠替換所有匹配
echo ${string/#abc/bb} //bb12342341   #以什么開頭來匹配,根php中的^有點像
echo ${string/%41/bb}  //abc123423bb  %以什么結尾來匹配,根php中的$有點像

到此,相信大家對“有哪些shell字符串操作方法”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續(xù)學習!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI