Bash中字符串使用總結(jié)

歡迎關(guān)注個人公眾號 DailyJobOps

原文地址:Bash中字符串使用總結(jié)


整理匯總了bash中字符串常見的操作行為撕彤。建議收藏,需要的時候方便對比查找。

常見的操作行為包括:

  • 字符串長度、
  • 字符串截取
  • 字符串關(guān)鍵字刪除
  • 字符串匹配刪除
  • 字符串替換
  • 字符串大小寫轉(zhuǎn)化
  • 字符串默認值

具體的操作的Demo詳見如下代碼

#!/usr/bin/env bash
# encoding: utf-8
# Author: colinspace.com
#


# Demo string
demostr="hello,world,hello,bash,hello,world"

echo "原始字符串: ${demostr}"
# 字符串長度
echo -e "字符串長度 : ${#demostr}"

# 字符串截取(不包括當(dāng)前offset位置)
echo -e "從字符串第6個位置到最后截取字符串: ${demostr:6}"
echo -e "從字符串第6個位置開始截取,截取長度為5:   ${demostr:6:5}"

echo " "
echo "字符串刪除"
echo "從字符串開頭開始刪除匹配最短的字符串: ${demostr#hello*,}"
echo "從字符串開頭開始刪除最長匹配的字符串:${demostr##hello*,}"
echo "從字符串尾部開始刪除匹配最短的字符串:${demostr%,*world}"
echo "從字符串尾部開始刪除最長匹配的字符串:${demostr%%,*world}"
echo "從字符串中刪除匹配的第一個字符串 ${demostr/hello}"
echo "從字符串中刪除匹配的所有字符串: ${demostr//hello}"

echo " "
# 字符串替換
echo "用字符串replacestr替換第一個匹配hello: ${demostr/hello/replacestr}"
echo "用字符串replacestr替換所有匹配hello: ${demostr//hello/replacestr}"
echo "如果字符串demostr前綴匹配hello闸天,則用replacestr替換hello: ${demostr/#hello/replacestr}"
echo "如果字符串demostr后綴匹配world,則用replacestr替換world: ${demostr/%world/replacestr}"

echo " "
echo "字符串大小寫轉(zhuǎn)換"
default="AdefaultValue"
echo "upper to all: ${default^^}"
echo "lower to all: ${default,,}"


echo " "
echo "字符串的默認值"
echo "\${a-default} 或者 \${a:-default} 如果變量a沒有聲明或者值為空則返回 default: ${a-default} or ${a:-default}"
echo " "

aa="aavalue"
echo "aa value: [${aa}]"
echo "\${aa+default} 或者 \${aa:+default} 如果變量aa已經(jīng)聲明且值不為空,怎返回default: ${aa+default} or ${aa:+default}"
echo " "

echo "b1 value: [${b1}]"
echo "\${b1=default} 如果變量b1沒有聲明或者值為空則返回刹勃,則返回default,并且將default的值賦值給b1, 否則返回變量b1的值:${b1=default} "
echo "b1 value: [${b1}]"
echo " "

echo "b2 value: [${b2}]"
echo "\${b2:=default} 如果變量b2沒有聲明或者值為空則返回嚎尤,則返回default荔仁,并且將default的值賦值給b2, 否則返回變量b2的值:${b2:=default} "
echo "b2 value: [${b2}]"
echo " "

b3="b3Value"
echo "b3 value: [${b3}]"
echo "\${b3=default} 如果變量b3沒有聲明或者值為空則返回,則返回default,并且將default的值賦值給b3, 否則返回變量b3的值:${b3=default} "
echo "b3 value: [${b3}]"
echo " "

echo "b3 value: [${b3}]"
echo "\${b3:=default} 如果變量b3沒有聲明或者值為空則返回乏梁,則返回default次洼,并且將default的值賦值給b3, 否則返回變量b3的值:${b3:=default} "
echo "b3 value: [${b3}]"

執(zhí)行結(jié)果如下:

image.png

演練舉例

逗號分割字符串遍歷

#!/usr/bin/env bash
# encoding: utf-8
# Author: colinspace.com

fruits="apple,orange,banana,peach"
fruits_array=(${fruits//,/ })

for fruit in ${fruits_array[@]}
do
    echo "I like to eat ${fruit}"
done

輸出結(jié)果

I like to eat apple
I like to eat orange
I like to eat banana
I like to eat peach

上述Demo的源碼地址:https://gitee.com/colin5063/note2021/blob/master/Linux/bash-string-operation-summary.sh

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市遇骑,隨后出現(xiàn)的幾起案子卖毁,更是在濱河造成了極大的恐慌,老刑警劉巖落萎,帶你破解...
    沈念sama閱讀 219,039評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件亥啦,死亡現(xiàn)場離奇詭異,居然都是意外死亡练链,警方通過查閱死者的電腦和手機翔脱,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,426評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來媒鼓,“玉大人届吁,你說我怎么就攤上這事÷堂” “怎么了疚沐?”我有些...
    開封第一講書人閱讀 165,417評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長潮模。 經(jīng)常有香客問我濒旦,道長,這世上最難降的妖魔是什么再登? 我笑而不...
    開封第一講書人閱讀 58,868評論 1 295
  • 正文 為了忘掉前任尔邓,我火速辦了婚禮,結(jié)果婚禮上锉矢,老公的妹妹穿的比我還像新娘梯嗽。我一直安慰自己,他們只是感情好沽损,可當(dāng)我...
    茶點故事閱讀 67,892評論 6 392
  • 文/花漫 我一把揭開白布灯节。 她就那樣靜靜地躺著,像睡著了一般绵估。 火紅的嫁衣襯著肌膚如雪炎疆。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,692評論 1 305
  • 那天国裳,我揣著相機與錄音形入,去河邊找鬼。 笑死缝左,一個胖子當(dāng)著我的面吹牛亿遂,可吹牛的內(nèi)容都是我干的浓若。 我是一名探鬼主播,決...
    沈念sama閱讀 40,416評論 3 419
  • 文/蒼蘭香墨 我猛地睜開眼蛇数,長吁一口氣:“原來是場噩夢啊……” “哼挪钓!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起耳舅,我...
    開封第一講書人閱讀 39,326評論 0 276
  • 序言:老撾萬榮一對情侶失蹤碌上,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后浦徊,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體绍赛,經(jīng)...
    沈念sama閱讀 45,782評論 1 316
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,957評論 3 337
  • 正文 我和宋清朗相戀三年辑畦,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片腿倚。...
    茶點故事閱讀 40,102評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡纯出,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出敷燎,到底是詐尸還是另有隱情暂筝,我是刑警寧澤,帶...
    沈念sama閱讀 35,790評論 5 346
  • 正文 年R本政府宣布硬贯,位于F島的核電站焕襟,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏饭豹。R本人自食惡果不足惜鸵赖,卻給世界環(huán)境...
    茶點故事閱讀 41,442評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望拄衰。 院中可真熱鬧它褪,春花似錦、人聲如沸翘悉。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,996評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽妖混。三九已至老赤,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間制市,已是汗流浹背抬旺。 一陣腳步聲響...
    開封第一講書人閱讀 33,113評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留祥楣,地道東北人嚷狞。 一個月前我還...
    沈念sama閱讀 48,332評論 3 373
  • 正文 我出身青樓块促,卻偏偏與公主長得像,于是被迫代替她去往敵國和親床未。 傳聞我的和親對象是個殘疾皇子竭翠,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,044評論 2 355

推薦閱讀更多精彩內(nèi)容