BASH 內置的字符串處理功能
阿新 • • 發佈:2018-04-30
bash linux 字符串處理 BASH 內置的字符串處理功能
字符串切片:
${var:offset:number} #offset表示從哪個字符開始,number表示取幾個字符
url=www.baidu.com
echo ${url:4:5} -> baidu
echo ${url:4} ->baidu.com
${var: -number} #表示從右往左取幾個字符,註意” - “前面必須有空格
基於模式的取串:
${var#*word} #表示從左至右,刪除到第一個被word匹配字符中間所有的字符串
url=www.baidu.com
echo ${url#*.} ->baidu.com
${var##*word} #表示從左至右,刪除到最後一個被word匹配字符中間所有的字符串
url=www.baidu.com
echo ${url##*.} ->com
${var%word*} #表示自右往左,刪除到第一個匹配word的字符串
path=’/etc/selinux/config’
echo ${path%/*} -> /etc/selinux #取路徑名
${var%%word*} #表示自右往左,刪除到最後一個匹配word的字符串
查找替換:
${var/pattern/substr} #表示將被pattern第一次匹配的字符替換為substr
url=www.baidu.com
echo ${url/www/mail} ->mail.baidu.com
${var//pattern/substr} #表示此行中所有被pattern匹配的字符都替換為subtr
url=www.baidu.com.cc
echo=${url//./_} ->www_baidu_com_cc
${var/#pattern/substr} #行首錨定,只匹配出現在行首的字符
${var/%pattern/substr} #行位錨定,只匹配出現在行尾的字符
字符刪除:
${var/pattern} #刪除第一次被pattern匹配的字符
${var//pattern} #刪除整行所有被pattern匹配的字符
${var/#pattern} #刪除行首被pattern匹配的字符
${var/%pattern} #刪除行尾被pattern匹配的字符
BASH 內置的字符串處理功能