shell字符串处理大全

使用#%截取字符串

记住# $ % 这3个字符在键盘上的位置
# 在 $ 的左边,从左边开始数
% 在 $的右边,从右边开始数

${varible##*string}    #从左向右截取最后一个string后的字符串
${varible#*string}     #从左向右截取第一个string后的字符串
${varible%%string*}    #从右向左截取最后一个string后的字符串
${varible%string*}     #从右向左截取第一个string后的字符串
“*”只是一个通配符可以不要
# 例子:
MYVAR="food|forthought.jpg"
echo ${MYVAR##*fo}   # rthought.jpg
echo ${MYVAR#*fo}    # od|forthought.jpg
echo ${MYVAR%%fo*}   #
echo ${MYVAR%fo*}    #food|

使用位置与长度截取${str:index:length}

${varible:n1:n2}:  从左边数截取变量varible从n1到n2之间的字符串。
${varible:0-n1:n2}:从右边数截取变量varible从n1到n2之间的字符串。
MYVAR="food|forthought.jpg"
echo ${MYVAR:0:3}    #foo
echo ${MYVAR:3}      #d|forthought.jpg
echo ${MYVAR:0-3:2}  #jp
echo ${MYVAR:0-3}    #jpg

字符串替换${str/oldChar/newChar}

str=/home/log/logs/err.log.2017-12-05
echo ${str/log/xxx}  #:将第一个log替换为xxx
#/home/log/logs/err.log.2017-12-05

echo ${str//log/xxx}  #: 将全部log替换为xxx
#/home/admin/xxxs/err.xxx.2017-12-05
    原文作者:quan575
    原文地址: https://www.jianshu.com/p/ab3b057c7a7b
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞