shell 字串操作

2021-09-01 17:08:30 字數 1714 閱讀 8168

string=abc12342341

1,取得字串長度

echo $             //結果11  

expr length $string //結果11

expr "$string" : ".*" //結果11 分號二邊要有空格,這裡的:根match的用法差不多

2,字串所在位置

expr index $string '123'    //結果4 字串對應的下標是從0開始的
3,從字串開頭到子串的最大長度

expr match $string 'abc.*3' //結果9
4,字串擷取

echo $      //2342341  從第4位開始擷取後面所有字串  

echo $ //123 從第3位開始擷取後面3位

echo $ //123423 從第3位開始擷取後面6位

echo $ //2341 :右邊有空格 擷取後4位

echo $ //2341 同上

expr substr $string 3 3 //123 從第3位開始擷取後面3位

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 $     //42341  從$string左邊開始,去掉最短匹配子串  

echo $ //abc12342341 這樣什麼也沒有匹配到

echo $ //42341 從$string左邊開始,去掉最短匹配子串

echo $ //41 從$string左邊開始,去掉最長匹配子串

echo $ //abc12342 從$string右邊開始,去掉最短匹配子串

echo $ //abc12 從$string右邊開始,去掉最長匹配子串

7,匹配並且替換

echo $   //abc1bb42341  替換一次  

echo $ //abc1bb4bb41 雙斜槓替換所有匹配

echo $ //bb12342341 #以什麼開頭來匹配,根php中的^有點像

echo $ //abc123423bb %以什麼結尾來匹配,根php中的$有點像

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內建一系列操作符號,可以達到類似效果,大家知道,使用內部操作符會省略啟動外部程式等時間,因此速度會非常的快。一 判斷...