假設有變量 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