[Linux] shell腳本字符串截取的8種方法

假設有變量 url=https://access.redhat.com/downloads

1. # 號截取,刪除指定字符(首個)左邊的字符

【例】echo ${url#*//}
其中 url 是變量名,# 號是運算符,*// 表示從左邊開始刪除第一個 // 號及左邊的所有字符

[root@xxx ~]# echo ${url#*//}
access.redhat.com/downloads

2. ## 號截取,刪除指定字符(最後一個)左邊的字符

【例】echo ${url##*/}

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

[root@xxx ~]# echo ${url##*/}
downloads

3. %號截取,從字符串末尾開始,刪除指定字符(首個)右邊的字符

【例】echo ${url%/*}

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

[root@xxx ~]# echo ${url%/*}
https://access.redhat.com

4. %% 號截取,從字符串末尾開始,刪除指定字符串(最後一個)右邊的字符

【例】echo ${url%%/*}
 %%/* 表示從右邊開始,刪除最後(最左邊)一個 / 號及右邊的字符

[root@xxx ~]# echo ${url%%/*}
https:

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

【例】echo ${url:0:5}

其中的 0 表示左邊第一個字符開始,5 表示字符的總個數

[root@xxx ~]# echo ${url:0:5}
https
[root@xxx ~]# echo ${url:8:6}
access


6. 從左邊第幾個字符開始到結束

【例】echo ${url:8}

其中的 8表示左邊第9個字符開始到結束

[root@xxx ~]# echo ${url:8}
access.redhat.com/downloads

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

【例】echo ${url:0-20:6}

其中的 0-20 表示右邊算起第20個字符開始,6表示字符的個數

[root@xxx ~]# echo ${url:0-20:6}
redhat

8. 從右邊第幾個字符開始到結束

【例】echo ${url:0-20}

表示從右邊第20個字符開始到結束

[root@xxx ~]# echo ${url:0-20}
redhat.com/downloads

參考資料:
shell腳本字符串截取的8種方法 https://www.cnblogs.com/zwgblog/p/6031256.html , https://www.jb51.net/article/56563.htm
 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章