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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

 2. 使用 % 截取左邊字符

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

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

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

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

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

相關(guān)文章

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

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

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

    Linux命令中的rpm安裝命令

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

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

    假如執(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í)行的問(wèn)題呢,本文將要介紹的 flock 命令可以解決這個(gè)問(wèn)題
    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的解決,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-10-10
  • Shell腳本的條件測(cè)試和if條件語(yǔ)句使用方法

    Shell腳本的條件測(cè)試和if條件語(yǔ)句使用方法

    這篇文章主要介紹了Shell腳本的條件測(cè)試和if條件語(yǔ)句使用方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(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è)過(guò)一段時(shí)間自動(dòng)會(huì)掛的bug一直沒(méi)能解決,掛的時(shí)候還要手動(dòng)重啟tomcat,于是決定寫(xiě)個(gè)腳本讓它定時(shí)檢測(cè)故障自動(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

最新評(píng)論