今天再寫shell的時候,感覺字符串截取不是特別順利,最后用切割字符串獲取的,就隨便整理一些
定義變量
[root@iZ1la3d1xbmukrZ ~]# net=https://www.cnblogs.com/dalianpai/ [root@iZ1la3d1xbmukrZ ~]#
1、 # 號截取,刪除左邊字符,保留右邊字符。
[root@iZ1la3d1xbmukrZ ~]# echo ${net#*//} www.cnblogs.com/dalianpai/ [root@iZ1la3d1xbmukrZ ~]#
其中 var 是變量名,# 號是運算符,*// 表示從左邊開始刪除第一個 // 號及左邊的所有字符即刪除 http://
2、 ## 號截取,刪除左邊字符,保留右邊字符。
[root@iZ1la3d1xbmukrZ ~]# echo ${net##*/} [root@iZ1la3d1xbmukrZ ~]#
##*/ 表示從左邊開始刪除最后(最右邊)一個 / 號及左邊的所有字符即刪除 整個
3、 %號截取,刪除右邊字符,保留左邊字符
[root@iZ1la3d1xbmukrZ ~]# echo ${net%/*} https://www.cnblogs.com/dalianpai [root@iZ1la3d1xbmukrZ ~]#
%/* 表示從右邊開始,刪除第一個 / 號及右邊的字符
4、 %% 號截取,刪除右邊字符,保留左邊字符
[root@iZ1la3d1xbmukrZ ~]# echo ${net%%/*} https: [root@iZ1la3d1xbmukrZ ~]#
%%/* 表示從右邊開始,刪除最后(最左邊)一個 / 號及右邊的字符
5、 從左邊第幾個字符開始,及字符的個數
[root@iZ1la3d1xbmukrZ ~]# string="runoob is a great site" [root@iZ1la3d1xbmukrZ ~]# echo ${string:0:${#string}-4} runoob is a great
其中的 0 表示左邊第一個字符開始
6、 從左邊第幾個字符開始,一直到結束。
[root@iZ1la3d1xbmukrZ ~]# echo ${net:7} /www.cnblogs.com/dalianpai/ [root@iZ1la3d1xbmukrZ ~]#
其中的 7 表示左邊第8個字符開始,一直到結束。
7、 從右邊第幾個字符開始,及字符的個數
[root@iZ1la3d1xbmukrZ ~]# echo ${net:0-7:3} ian [root@iZ1la3d1xbmukrZ ~]#
其中的 0-7 表示右邊算起第七個字符開始,3 表示字符的個數。
8、 從右邊第幾個字符開始,一直到結束。
[root@iZ1la3d1xbmukrZ ~]# echo ${net:0-7} ianpai/ [root@iZ1la3d1xbmukrZ ~]#
表示從右邊第七個字符開始,一直到結束。
注:(左邊的第一個字符是用 0 表示,右邊的第一個字符用 0-1 表示)