象專業人員那樣截斷字串
象專業人員那樣截斷字串
儘管 basename 和 dirname 是很好的工具,但有時可能需要執行更高階的字串“截斷”,而不只是標準的路徑名操作。當需要更強的說服力時,可以利用 bash 內建的變數擴充套件功能。已經使用了類似於 ${MYVAR} 的標準型別的變數擴充套件。但是 bash 自身也可以執行一些便利的字串截斷。看一下這些例子:
第一種方法:
${varible##*string} 從左向右擷取最後一個string後的字串
${varible#*string}從左向右擷取第一個string後的字串
${varible%%string*}從右向左擷取最後一個string後的字串
${varible%string*}從右向左擷取第一個string後的字串
"*"只是一個萬用字元可以不要
$ MYVAR=foodforthought.jpg
$ echo ${MYVAR##*fo}
rthought.jpg
$ echo ${MYVAR#*fo}
odforthought.jpg
在第一個例子中,輸入了 ${MYVAR##*fo}。它的確切含義是什麼?基本上,在 ${ } 中輸入環境變數名稱,兩個 ##,然後是萬用字元 ("*fo")。然後,bash 取得 MYVAR,找到從字串 "foodforthought.jpg" 開始處開始、且匹配萬用字元 "*fo" 的 最長 子字串,然後將其從字串的開始處截去。剛開始理解時會有些困難,為了感受一下這個特殊的 "##" 選項如何工作,讓我們一步步地看看 bash 如何完成這個擴充套件。首先,它從 "foodforthought.jpg" 的開始處搜尋與 "*fo" 萬用字元匹配的子字串。以下是檢查到的子字串:
f
fo MATCHES *fo
foo
food
foodf
foodfo MATCHES *fo
foodfor
foodfort
foodforth
foodfortho
foodforthou
foodforthoug
foodforthought
foodforthought.j
foodforthought.jp
foodforthought.jpg
在搜尋了匹配的字串之後,可以看到 bash 找到兩個匹配。它選擇最長的匹配,從初始字串的開始處除去,然後返回結果。
上面所示的第二個變數擴充套件形式看起來與第一個相同,但是它只使用一個 "#" -- 並且 bash 執行 幾乎 同樣的過程。它檢視與第一個例子相同的子字串系列,但是 bash 從初始字串除去 最短 的匹配,然後返回結果。所以,一查到 "fo" 子字串,它就從字串中除去 "fo",然後返回 "odforthought.jpg"。
這樣說可能會令人十分困惑,下面以一簡單方式記住這個功能。當搜尋最長匹配時,使用 ##(因為 ## 比 # 長)。當搜尋最短匹配時,使用 #。看,不難記吧!等一下,怎樣記住應該使用
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/271283/viewspace-983161/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- python如何截斷字串Python字串
- dimp時報錯,字串截斷字串
- 物件業務的截斷介面物件
- 達夢資料庫DM Exception字串截斷錯誤,略坑~資料庫Exception字串
- MacOS專業截圖指南——截圖技巧和截圖工具分享Mac
- 一個SAP開發人員的雙截棍之路
- 網路安全專家成後疫情時代最受追捧專業人員
- IT安全專業人員應該知道的12件事
- Linux運維人員的職業發展方向是怎樣的?Linux運維
- 萬能碼功能不斷開發(安全掃碼專業委員會)
- 萬能碼立志不斷前進(安全掃碼專業委員會)
- DevOps 專業人員如何成為網路安全擁護者dev
- ETL專業人員應該學習Hadoop的5個理由Hadoop
- 萬能碼從基本到不斷完善(安全掃碼專業委員會)
- 如何避免 GitHub 那樣斷網 43 秒癱瘓 24 個小時?Github
- System.data.sqlclient.sqlexception:將截斷字串或二進位制資料終止SQLclientException字串
- 讀取popen輸出結果時未截斷字串導致的命令列注入字串命令列
- 什麼是殭屍網路攻擊?安全專業人員指南
- 萬能碼等於工具人?(安全掃碼專業委員會)
- 非計算機專業人員如何學習好Python技術?計算機Python
- 網路專業人員需要了解的物聯網資訊
- 第五章 字串專題 ---------------- 5.1 題解:判斷字串有無重複字元字串字元
- 為什麼那麼多零基礎人員學習Python?Python
- IFR:2022年人員短缺導致專業服務機器人銷量增長48%機器人
- 如何成為一名專業的網站最佳化人員?網站
- 開發人員,千萬不要去碰那該死的業務引數,無論什麼時候!
- 【GoLang 那點事】gRPC 攔截器那點事,希望幫到你(六)GolangRPC
- 前端開發入門到實戰:css單行截斷和多行截斷問題前端CSS
- 運營助理/專員工作個人簡介
- 象切議十無重技壓那類電izf
- 民營公司招聘流程不專業的現象與分析
- 第五章 字串專題 ---------------- 5.6 解題:判斷兩字串的字符集是否相同字串
- linux 日誌log檔案 截斷Linux
- 2010.03.16專題:一個開發人員的專案煩惱
- python中字串格式判斷Python字串
- 判斷字串是否唯一字串
- python如何判斷字串相等Python字串
- 判斷URL字串是否合法字串
- 判斷字串是否為空字串