好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > Shell字符串截取的實現方法(非常詳細)

Shell字符串截取的實現方法(非常詳細)

熱門標簽:電話機器人對家居行業幫助大嗎 AI智能電銷機器人壞處 蘭州電銷機器人加盟 電商外呼系統排名 黑暗之魂3地圖標注 合肥電銷外呼系統供應商 地圖標注審核周期 沈陽ai電銷智能機器人 如何申請400的電話呀

Shell 截取字符串通常有兩種方式:從指定位置開始截取和從指定字符(子字符串)開始截取。

從指定位置開始截取

這種方式需要兩個參數:除了指定起始位置,還需要截取長度,才能最終確定要截取的字符串。

既然需要指定起始位置,那么就涉及到計數方向的問題,到底是從字符串左邊開始計數,還是從字符串右邊開始計數。答案是 Shell 同時支持兩種計數方式。

1) 從字符串左邊開始計數

如果想從字符串的左邊開始計數,那么截取字符串的具體格式如下:

${string: start :length}

其中,string 是要截取的字符串,start 是起始位置(從左邊開始,從 0 開始計數),length 是要截取的長度(省略的話表示直到字符串的末尾)。

例如:

url="jb51.net"
echo ${url: 2: 9}

結果為biancheng。

再如:

url="jb51.net"
echo ${url: 2} #省略 length,截取到字符串末尾

結果為biancheng.net。

2) 從右邊開始計數

如果想從字符串的右邊開始計數,那么截取字符串的具體格式如下:

${string: 0-start :length}

同第 1) 種格式相比,第 2) 種格式僅僅多了0-,這是固定的寫法,專門用來表示從字符串右邊開始計數。

這里需要強調兩點:

  • 從左邊開始計數時,起始數字是 0(這符合程序員思維);從右邊開始計數時,起始數字是 1(這符合常人思維)。計數方向不同,起始數字也不同。
  • 不管從哪邊開始計數,截取方向都是從左到右。

例如:

url="jb51.net"
echo ${url: 0-13: 9}

結果為biancheng。從右邊數,b是第 13 個字符。

再如:

url="jb51.net"
echo ${url: 0-13} #省略 length,直接截取到字符串末尾

結果為biancheng.net。

從指定字符(子字符串)開始截取

這種截取方式無法指定字符串長度,只能從指定字符(子字符串)截取到字符串末尾。Shell 可以截取指定字符(子字符串)右邊的所有字符,也可以截取左邊的所有字符。

1) 使用 # 號截取右邊字符

使用#號可以截取指定字符(或者子字符串)右邊的所有字符,具體格式如下:

${string#*chars}

其中,string 表示要截取的字符,chars 是指定的字符(或者子字符串),*是通配符的一種,表示任意長度的字符串。*chars連起來使用的意思是:忽略左邊的所有字符,直到遇見 chars(chars 不會被截取)。

請看下面的例子:

url="http://jb51.net/index.html"
echo ${url#*:}

結果為//jb51.net/index.html。

以下寫法也可以得到同樣的結果:

echo ${url#*p:}
echo ${url#*ttp:}

如果不需要忽略 chars 左邊的字符,那么也可以不寫*,例如:

url="http://jb51.net/index.html"
echo ${url#http://}

結果為jb51.net/index.html。

注意,以上寫法遇到第一個匹配的字符(子字符串)就結束了。例如:

url="http://jb51.net/index.html"
echo ${url#*/}

結果為/jb51.net/index.html。url 字符串中有三個/,輸出結果表明,Shell 遇到第一個/就匹配結束了。

如果希望直到最后一個指定字符(子字符串)再匹配結束,那么可以使用##,具體格式為:

${string##*chars}

請看下面的例子:

#!/bin/bash
url="http://jb51.net/index.html"
echo ${url#*/}  #結果為 /jb51.net/index.html
echo ${url##*/}  #結果為 index.html
str="---aa+++aa@@@"
echo ${str#*aa}  #結果為 +++aa@@@
echo ${str##*aa} #結果為 @@@

2) 使用 % 截取左邊字符

使用%號可以截取指定字符(或者子字符串)左邊的所有字符,具體格式如下:

${string%chars*}

請注意*的位置,因為要截取 chars 左邊的字符,而忽略 chars 右邊的字符,所以*應該位于 chars 的右側。其他方面%和#的用法相同,這里不再贅述,僅舉例說明:

#!/bin/bash
url="http://jb51.net/index.html"
echo ${url%/*} #結果為 http://jb51.net
echo ${url%%/*} #結果為 http:
str="---aa+++aa@@@"
echo ${str%aa*} #結果為 ---aa+++
echo ${str%%aa*} #結果為 ---

匯總

最后,我們對以上 8 種格式做一個匯總,請看下表:

格式 說明
${string: start :length} 從 string 字符串的左邊第 start 個字符開始,向右截取 length 個字符。
${string: start} 從 string 字符串的左邊第 start 個字符開始截取,直到最后。
${string: 0-start :length} 從 string 字符串的右邊第 start 個字符開始,向右截取 length 個字符。
${string: 0-start} 從 string 字符串的右邊第 start 個字符開始截取,直到最后。
${string#*chars} 從 string 字符串第一次出現 *chars 的位置開始,截取 *chars 右邊的所有字符。
${string##*chars} 從 string 字符串最后一次出現 *chars 的位置開始,截取 *chars 右邊的所有字符。
${string%*chars} 從 string 字符串第一次出現 *chars 的位置開始,截取 *chars 左邊的所有字符。
${string%%*chars} 從 string 字符串最后一次出現 *chars 的位置開始,截取 *chars 左邊的所有字符。

到此這篇關于Shell字符串截取的實現方法(非常詳細)的文章就介紹到這了,更多相關Shell字符串截取內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • Linux Shell 截取字符串的方法示例
  • shell編程中的字符串截取方法小結
  • Powershell截取字符串并添加省略號的例子
  • Shell腳本8種字符串截取方法總結
  • Shell字符串截取的詳細方法

標簽:常州 淮南 隴南 河池 黔南 河北 通遼 黔南

巨人網絡通訊聲明:本文標題《Shell字符串截取的實現方法(非常詳細)》,本文關鍵詞  Shell,字符串,截,取的,實現,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Shell字符串截取的實現方法(非常詳細)》相關的同類信息!
  • 本頁收集關于Shell字符串截取的實現方法(非常詳細)的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 黄网在线观看免费网站台湾swag| 嫩腿自慰呻吟喷浆| 我们的在线视频免费观看| 国产在线黄| 成人漫画?哔咔漫画入口| 91探花精品偷拍在线播放| 成人欧美在线观看| 国产又色又爽又刺激在线观看 | 日韩一级精品视频在线观看| 肥女bb| 拍拍拍美女黄色1000视频| 午夜精品一区二区在线观看的| 亚洲色欲色欲www在线成人网 | 韩国大尺度电影《男与女》| zo0o与人xxx另类| 97人妻人人澡人人人爽人人sex| 《欧美性按摩》电影| 两片肥厚的进进出出| 91狠狠做五月爱婷婷AⅤ | 色香五月| 国产精品无码亚洲欧美仙踪林| tube欧美巨大| 亚洲资源最新版在线观看| 俄罗斯r级贵妇的情欲按摩电影| 日本无遮挡漫画| 厨房里被?的最深的一天在线阅读| 看国产一级片| 亚洲奶水milkjapan| 英语老师的兔子又大又软又好吃的| 国产精品igao视频网网址男男| 不良研究所の永久入口导航| 我能获得熟练度| 亚洲bbbbbxxxxx精品三十七| 无码人妻-SEXvidos| 国产精品女同一区二区| 下楼梯的裸女| 一级黄色α片| www男人的天堂| 搡BBBB???搡BBB小说图| 极品情侣露脸偷拍在线| 99一级毛片|