欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

SHELL字符串提取的兩種方法實(shí)現(xiàn)

 更新時(shí)間:2023年10月29日 11:40:56   作者:zcfeng530  
本文主要介紹了SHELL字符串提取的兩種方法實(shí)現(xiàn),主要包括:從指定位置開始截取和從指定字符(子字符串)開始截取,具有一定的參考價(jià)值,感興趣的可以了解一下

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

一、從指定位置開始截取,Shell 同時(shí)支持從左和從右兩種計(jì)數(shù)方式

1.從字符串左邊開始計(jì)數(shù)

此方法需要提供位置參數(shù)和長度參數(shù),如${string:start:length},string 是要截取的字符串,start 是起始位置(省略的話表示從0開始),length 是要截取的長度(省略的話表示直到字符串的末尾)。

 2.從字符串右邊開始計(jì)數(shù)

從字符串的右邊開始計(jì)數(shù),那么截取字符串的具體格式如下:${string:0-start:length},位置參數(shù)是0-start ,這是固定寫法。需要注意的是,不管從左邊還是從右邊開始計(jì)數(shù),截取方向都是從左到右。

上圖第三種輸出其實(shí)屬于第一種情況,表示從頭截取到(保留后三位) 

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

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

1. 使用 # 號(hào)截取右邊字符

使用#號(hào)可以截取指定字符(或者子字符串)右邊的所有字符,具體格式如:${string#*chars} ,其中,string 表示要截取的字符,chars 是指定的字符(或者子字符串),*是通配符的一種,表示任意長度的字符串。*chars連起來使用的意思是:忽略左邊的所有字符,直到遇見 chars(chars 不會(huì)被截?。?/p>

 很容易發(fā)現(xiàn),如果不用*匹配,可以將字符串寫全。如果字符串中有多個(gè)相同的子串,那么匹配到第一個(gè)子串就結(jié)束了。如果希望直到最后一個(gè)指定字符(子字符串)再匹配結(jié)束,那么可以使用##,具體格式為:${string##*chars}

 2. 使用 % 截取左邊字符

使用%號(hào)可以截取指定字符左邊的所有字符(子字符串),具體格式如下:${string%chars*}

請注意*的位置,因?yàn)橐厝?chars 左邊的字符,而忽略 chars 右邊的字符,所以*應(yīng)該位于 chars 的右側(cè)。

同樣的 如果字符串中有多個(gè)相同的子串,那么匹配到第一個(gè)子串就結(jié)束了。如果希望直到最后一個(gè)指定字符(子字符串)再匹配結(jié)束,那么可以使用##,具體格式為:${string%%*chars}

熟練掌握這幾種對字符串的操作,一定會(huì)使你的shell更加精簡高效。

到此這篇關(guān)于SHELL字符串提取的兩種方法實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)SHELL字符串提取內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Linux命令之tail的使用及應(yīng)用場景介紹

    Linux命令之tail的使用及應(yīng)用場景介紹

    tail 是一條在 Linux 系統(tǒng)中常用的命令行工具,用來顯示文件的末尾內(nèi)容,tail 的功能強(qiáng)大且簡潔,能夠滿足多種應(yīng)用需求本文就給大家介紹一下Linux命令tail的使用及應(yīng)用場景,需要的朋友可以參考下
    2023-09-09
  • Linux命令中的rpm安裝命令

    Linux命令中的rpm安裝命令

    RPM 的全稱為Redhat Package Manager ,是由Redhat 公司提出的,用于管理Linux 下軟件包的軟件。下面通過本文給大家分享Linux命令中的rpm安裝命令,需要的的朋友參考下吧
    2017-06-06
  • 如何解決 shell 腳本重復(fù)執(zhí)行的問題

    如何解決 shell 腳本重復(fù)執(zhí)行的問題

    假如執(zhí)行備份腳本消耗的時(shí)間遠(yuǎn)大于設(shè)置的備份間隔的話,系統(tǒng)會(huì)出現(xiàn)多個(gè)同時(shí)在執(zhí)行腳本的Bash實(shí)例,會(huì)占用大量的系統(tǒng)資源,進(jìn)而影響正常業(yè)務(wù)程序的運(yùn)行,那如何解決上述shell腳本重復(fù)執(zhí)行的問題呢,本文將要介紹的 flock 命令可以解決這個(gè)問題
    2021-05-05
  • shell數(shù)組常用實(shí)例分享

    shell數(shù)組常用實(shí)例分享

    本文為大家舉一些shell數(shù)組的小例子,供大家學(xué)習(xí)參考
    2013-02-02
  • shell字符串截取報(bào)錯(cuò):Bad substitution的解決

    shell字符串截取報(bào)錯(cuò):Bad substitution的解決

    這篇文章主要介紹了shell字符串截取報(bào)錯(cuò):Bad substitution的解決,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-10-10
  • Shell腳本的條件測試和if條件語句使用方法

    Shell腳本的條件測試和if條件語句使用方法

    這篇文章主要介紹了Shell腳本的條件測試和if條件語句使用方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11
  • unix編程創(chuàng)建前綴固定的臨時(shí)文件代碼分享

    unix編程創(chuàng)建前綴固定的臨時(shí)文件代碼分享

    unix編程創(chuàng)建一個(gè)前綴固定的臨時(shí)文件,實(shí)現(xiàn)功能:創(chuàng)建一個(gè)臨時(shí)文件,并返回其文件描述符
    2013-12-12
  • shell腳本實(shí)現(xiàn)本地文件與服務(wù)器文件同步

    shell腳本實(shí)現(xiàn)本地文件與服務(wù)器文件同步

    這篇文章主要介紹了本地文件與服務(wù)器文件同步shell腳本的方法,然后在文章給大家補(bǔ)充介紹了shell腳本備份本地服務(wù)器的文件到遠(yuǎn)程服務(wù)器的實(shí)例代碼,需要的朋友可以參考下
    2017-11-11
  • 自動(dòng)重啟服務(wù)的shell腳本代碼

    自動(dòng)重啟服務(wù)的shell腳本代碼

    公司tomcat服務(wù)器有個(gè)過一段時(shí)間自動(dòng)會(huì)掛的bug一直沒能解決,掛的時(shí)候還要手動(dòng)重啟tomcat,于是決定寫個(gè)腳本讓它定時(shí)檢測故障自動(dòng)重啟吧
    2013-06-06
  • 詳解Linux使用shell+expect遠(yuǎn)程登錄主機(jī)

    詳解Linux使用shell+expect遠(yuǎn)程登錄主機(jī)

    這篇文章主要介紹了詳解Linux使用shell+expect遠(yuǎn)程登錄主機(jī)的相關(guān)資料,這里提供了詳細(xì)的實(shí)現(xiàn)步驟,需要的朋友可以參考下
    2017-08-08

最新評論