Linux字符串截取命令


今天再寫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 表示)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM