校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > shell 字符串操作(長度,查找,替換)詳解

shell 字符串操作(長度,查找,替換)詳解

熱門標簽:艾比利外呼系統(tǒng) 電話機器人每天搜索多少次 海口智能語音電銷機器人好用嗎 昆明電話外呼系統(tǒng)好么 外呼系統(tǒng)一天耗費多少流量 陜西便宜電銷機器人軟件 衡水外呼線路解決 杞縣地圖標注app 免費門店地圖標注注冊入駐
復(fù)制代碼 代碼如下:

工作中字符串操作舉例
filename='/home/admin/jobs/CnClickstat/DFSLoader/loader.cfg'
#下面是使用shell字符串操作
buName1=${filename#*/jobs/} #去除'/home/admin/jobs/CnClickstat/DFSLoader/loader.cfg'前綴得到'CnClickstat/DFSLoader/loader.cfg'
buName1=${buName1%%/*} #去除'CnClickstat/DFSLoader/loader.cfg'后綴得到'CnClickstat'
echo $buName1

#下面用awk獲取需要的字符串內(nèi)容
buName2=`echo $filename | awk -F / '{printf("%s", $5)}'`;
echo $buName2

#下面使用cut獲取需要的字符串內(nèi)容
buName3=`echo $filename | cut -d / -f 5`;
echo $buName3

以上均能獲得結(jié)果:CnClickstat
字符串操作舉例結(jié)束


在做shell批處理程序時候,經(jīng)常會涉及到字符串相關(guān)操作。有很多命令語句,如:awk,sed都可以做字符串各種操作。其實shell內(nèi)置一系列操作符號,可以達到類似效果,大家知道,使用內(nèi)部操作符會省略啟動外部程序等時間,因此速度會非常的快。

一、判斷讀取字符串值

表達式

含義

${var}

變量var的值, $var相同

${var-DEFAULT}

如果var沒有被聲明, 那么就以$DEFAULT作為其值 *

${var:-DEFAULT}

如果var沒有被聲明, 或者其值為空, 那么就以$DEFAULT作為其值 *

${var=DEFAULT}

如果var沒有被聲明, 那么就以$DEFAULT作為其值 *

${var:=DEFAULT}

如果var沒有被聲明, 或者其值為空, 那么就以$DEFAULT作為其值 *

${var+OTHER}

如果var聲明了, 那么其值就是$OTHER, 否則就為null字符串

${var:+OTHER}

如果var被設(shè)置了, 那么其值就是$OTHER, 否則就為null字符串

${var?ERR_MSG}

如果var沒被聲明, 那么就打印$ERR_MSG *

${var:?ERR_MSG}

如果var沒被設(shè)置, 那么就打印$ERR_MSG *

${!varprefix*}

匹配之前所有以varprefix開頭進行聲明的變量

${!varprefix@}

匹配之前所有以varprefix開頭進行聲明的變量


加入了“*” 不是意思是: 當(dāng)然, 如果變量var已經(jīng)被設(shè)置的話, 那么其值就是$var.

[chengmo@localhost ~]$ echo ${abc-'ok'}
ok
[chengmo@localhost ~]$ echo $abc

[chengmo@localhost ~]$ echo ${abc='ok'}
ok
[chengmo@localhost ~]$ echo $abc
ok


如果abc 沒有聲明“="還會給abc賦值。

[chengmo@localhost ~]$ var1=11;var2=12;var3=
[chengmo@localhost ~]$ echo${!v@}
var1 var2 var3
[chengmo@localhost ~]$ echo ${!v*}
var1 var2 var3

${!varprefix*}與${!varprefix@}相似,可以通過變量名前綴字符,搜索已經(jīng)定義的變量,無論是否為空值。

二、字符串操作(長度,讀取,替換)

表達式

含義

${#string}

$string的長度

${string:position}

$string, 從位置$position開始提取子串

${string:position:length}

$string, 從位置$position開始提取長度為$length的子串

${string#substring}

從變量$string的開頭,刪除最短匹配$substring的子串

${string##substring}

從變量$string的開頭,刪除最長匹配$substring的子串

${string%substring}

從變量$string的結(jié)尾,刪除最短匹配$substring的子串

${string%%substring}

從變量$string的結(jié)尾,刪除最長匹配$substring的子串

${string/substring/replacement}

使用$replacement, 來代替第一個匹配的$substring

${string//substring/replacement}

使用$replacement, 代替所有匹配的$substring

${string/#substring/replacement}

如果$string前綴匹配$substring,那么就用$replacement來代替匹配到的$substring

${string/%substring/replacement}

如果$string后綴匹配$substring,那么就用$replacement來代替匹配到的$substring


說明:"* $substring”可以是一個正則表達式.

1.長度

[web97@salewell97 ~]$ test='I love china'
[web97@salewell97 ~]$ echo ${#test}
12
${#變量名}得到字符串長度

2.截取字串

[chengmo@localhost ~]$ test='I love china'
[chengmo@localhost ~]$ echo ${test:5}
e china
[chengmo@localhost ~]$ echo ${test:5:10}
e china
${變量名:起始:長度}得到子字符串

3.字符串刪除

[chengmo@localhost ~]$ test='c:/windows/boot.ini'
[chengmo@localhost ~]$ echo ${test#/}
c:/windows/boot.ini
[chengmo@localhost ~]$ echo ${test#*/}
windows/boot.ini
[chengmo@localhost ~]$ echo ${test##*/}
boot.ini
[chengmo@localhost ~]$ echo ${test%/*}
c:/windows
[chengmo@localhost ~]$ echo ${test%%/*}
${變量名#substring正則表達式}從字符串開頭開始配備substring,刪除匹配上的表達式。
${變量名%substring正則表達式}從字符串結(jié)尾開始配備substring,刪除匹配上的表達式。
注意:${test##*/},${test%/*} 分別是得到文件名,或者目錄地址最簡單方法。

4.字符串替換

[chengmo@localhost ~]$ test='c:/windows/boot.ini'
[chengmo@localhost ~]$ echo ${test/\//\\}
c:\windows/boot.ini
[chengmo@localhost ~]$ echo ${test//\//\\}
c:\windows\boot.ini

${變量/查找/替換值}一個“/”表示替換第一個,”//”表示替換所有,當(dāng)查找中出現(xiàn)了:”/”請加轉(zhuǎn)義符”\/”表示。

三、性能比較

在shell中,通過awk,sed,expr等都可以實現(xiàn),字符串上述操作。下面我們進行性能比較。
[chengmo@localhost ~]$test='c:/windows/boot.ini'
[chengmo@localhost ~]$ time for i in $(seq 10000);doa=${#test};done;
real 0m0.173s
user 0m0.139s
sys 0m0.004s
[chengmo@localhost ~]$ time for i in $(seq 10000);do a=$(expr length$test);done;
real 0m9.734s
user 0m1.628s

速度相差上百倍,調(diào)用外部命令處理,與內(nèi)置操作符性能相差非常大。在shell編程中,盡量用內(nèi)置操作符或者函數(shù)完成。使用awk,sed類似會出現(xiàn)這樣結(jié)果。
Yorking Alan
您可能感興趣的文章:
  • Shell腳本中計算字符串長度的5種方法
  • linux shell 字符串操作(長度,查找,替換)詳解
  • Shell腳本計算字符串長度和判斷字符串為空小技巧
  • linux shell字符串內(nèi)置的常用操作(獲取長度、查找、替換)
  • Shell獲取字符串長度的多種方法總結(jié)

標簽:西寧 營口 南京 臨滄 泰安 宿遷 昌都

巨人網(wǎng)絡(luò)通訊聲明:本文標題《shell 字符串操作(長度,查找,替換)詳解》,本文關(guān)鍵詞  shell,字符串,操作,長度,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《shell 字符串操作(長度,查找,替換)詳解》相關(guān)的同類信息!
  • 本頁收集關(guān)于shell 字符串操作(長度,查找,替換)詳解的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃
    麻豆精品视频在线观看视频| 狠狠色丁香婷婷综合| 色视频一区二区| 亚洲色图20p| 欧美在线视频不卡| 午夜天堂影视香蕉久久| 精品视频在线视频| 国产99久久久国产精品潘金| 国产精品久久网站| 欧美一区二视频| 国产麻豆欧美日韩一区| 一区二区三区不卡视频在线观看 | 69堂成人精品免费视频| 久久精品国产精品亚洲红杏| 日本一区二区三区四区| 欧美专区日韩专区| 成人免费的视频| 美女一区二区三区| 亚洲色欲色欲www| 欧美电影一区二区| 亚洲啪啪综合av一区二区三区| 欧美日韩一区二区三区不卡 | 99re视频精品| 国产盗摄视频一区二区三区| 中文字幕一区二区在线观看| 色妹子一区二区| 99精品欧美一区二区三区小说 | 国产不卡在线视频| 蜜臀av性久久久久蜜臀av麻豆| 亚洲欧洲国产日本综合| 久久久久88色偷偷免费| 欧美一区二区在线不卡| 91美女片黄在线观看| 另类小说一区二区三区| 亚洲国产一区二区三区青草影视| 中日韩av电影| 亚洲日穴在线视频| 亚洲精品一区二区三区香蕉| 成人夜色视频网站在线观看| 国产在线一区二区综合免费视频| 亚洲一区二区在线播放相泽| 亚洲天堂网中文字| 亚洲精品日产精品乱码不卡| 国产精品久久久久一区| 中文字幕一区二区视频| 日韩美女久久久| 亚洲综合色自拍一区| 日韩一区二区在线观看视频 | 中国色在线观看另类| 日韩高清在线不卡| 国产一区美女在线| 成人免费一区二区三区在线观看 | 欧美在线观看一区| 欧美色涩在线第一页| 色一情一伦一子一伦一区| 色呦呦网站一区| 亚洲成a人片综合在线| 亚洲一区二区三区激情| 老司机午夜精品| 99精品视频在线观看免费| 日韩一区二区不卡| 亚洲成人精品一区| 99精品视频一区| 久久久久久久久久久久电影| 亚洲激情网站免费观看| 精品一区二区精品| 欧美久久一二三四区| 最新日韩av在线| 国产在线一区二区综合免费视频| 色噜噜狠狠一区二区三区果冻| 久久亚洲一区二区三区四区| 日韩avvvv在线播放| 91高清视频在线| 亚洲免费大片在线观看| 成人美女在线视频| 久久奇米777| 九色综合狠狠综合久久| 在线成人免费观看| 五月天精品一区二区三区| 在线一区二区视频| 亚洲在线中文字幕| 日韩欧美中文一区| 人人狠狠综合久久亚洲| 欧美成人video| 精品影视av免费| 日本一区二区三区国色天香| 高清beeg欧美| 亚洲精品成人悠悠色影视| 在线亚洲一区二区| 视频一区在线播放| 国产欧美精品一区aⅴ影院| 99久久er热在这里只有精品66| 国产色产综合色产在线视频| 婷婷国产v国产偷v亚洲高清| 色老汉av一区二区三区| 洋洋成人永久网站入口| 一本到不卡精品视频在线观看| 国产精品美女视频| 在线免费观看成人短视频| 奇米一区二区三区av| 亚洲人成亚洲人成在线观看图片| 欧美亚洲一区二区在线| 精品一区二区综合| 亚洲资源中文字幕| 国产精品乱人伦| 日韩欧美色综合| 色狠狠一区二区| 成人免费av在线| 成人福利视频网站| 激情国产一区二区| 亚洲天堂免费看| 欧美亚日韩国产aⅴ精品中极品| 亚洲超碰精品一区二区| 欧美变态口味重另类| 欧美人妇做爰xxxⅹ性高电影| 国内国产精品久久| 日韩中文字幕91| 亚洲高清视频中文字幕| 亚洲一区二区三区美女| 美女一区二区视频| 国产制服丝袜一区| 日韩av高清在线观看| 久久国产婷婷国产香蕉| 精品一区二区三区免费观看 | 国产精品色呦呦| 中文在线资源观看网站视频免费不卡| 久久久久国色av免费看影院| 久久久久久久久久久电影| 欧美网站大全在线观看| 欧美日本国产一区| 91精品国产综合久久精品性色| 在线亚洲精品福利网址导航| 欧美在线高清视频| 欧美高清性hdvideosex| 久久久久国产成人精品亚洲午夜 | 欧美疯狂性受xxxxx喷水图片| 日韩午夜中文字幕| 亚洲综合自拍偷拍| 蜜臀精品久久久久久蜜臀| 狠狠色狠狠色综合| 欧美一区二区三区性视频| 中文在线一区二区| 国产乱码精品一区二区三区忘忧草| 色婷婷综合五月| 国产亚洲va综合人人澡精品| 日韩一区欧美小说| 狠狠色狠狠色综合| 欧美高清dvd| 亚洲天堂av一区| 99re这里都是精品| 国产三级三级三级精品8ⅰ区| 亚洲成在线观看| 欧美色综合天天久久综合精品| 国产亚洲综合性久久久影院| 久久精品国产77777蜜臀| 欧美亚日韩国产aⅴ精品中极品| 亚洲色图视频网| 欧美日本一区二区三区| 亚洲资源在线观看| 欧美综合在线视频| 日韩制服丝袜先锋影音| 欧美三级电影网| 美女网站一区二区| 久久久久久久久蜜桃| 精品在线观看视频| 国产亚洲成年网址在线观看| 国产成人免费视频网站| 国产精品免费视频观看| 欧美日韩精品一区二区在线播放| 亚洲视频图片小说| 欧美午夜精品电影| 视频一区二区中文字幕| 日韩欧美一区二区三区在线| 国产一区二区三区免费观看| 国产精品久久久久影院亚瑟| 99精品国产99久久久久久白柏| 综合色中文字幕| 欧美一区二区三区在线观看 | 国产精品久久久久婷婷二区次| 激情文学综合网| 亚洲精品五月天| 亚洲国产精品ⅴa在线观看| 欧美日韩一区久久| 成人午夜精品在线| 日韩电影在线一区二区| 最好看的中文字幕久久| 337p日本欧洲亚洲大胆色噜噜| 一本久久综合亚洲鲁鲁五月天| 一区二区三区在线视频免费| 6080国产精品一区二区| 国产成人在线视频播放| 亚洲国产成人av网| 中文字幕av一区二区三区| 日韩视频在线你懂得| 在线观看欧美日本| 色综合中文字幕国产| 一区二区三区在线高清| 中文字幕免费不卡| 亚洲素人一区二区| 日韩一区欧美一区|