bash编程之 字符串操作

字符串切片:${var:offset:lenth}

a="world", ${a:2:2}, rl

 

取字符串最后的几个字符:${var: -lenth}

注意:冒号之后有空格;

 

基于模式取子串:

${var#*word}:其中word可以是指定的任意字符;自左而右,查找var变量所存储字符中,第一次出现的word,删除字符开头直至第一次wrod出现处之间的所有字符;

mypath='sysconfig/network-scripts/ifcfg-eth0'
echo ${mypath#*/}
输出:network-scripts/ifcfg-eth0

 

${var##*word}: 其中word可以是指定的任意字符;自左而右,查找var变量所存储字符中,最后一次出现的word,删除字符开头直至最后一次wrod出现处之间的所有字符;

mypath='/sysconfig/network-scripts/ifcfg-eth0'
echo ${mypath##*/}
输出:ifcfg-eth0

 

${var%word*}: 自右而左,删除第一次word出现处的字符开始直到尾部的所有字符;

${var%%word*}:自右而左,删除最后一次word出现处的字符开始直到尾部的所有字符;

 

例子:url=http://www.magedu.com:80

取端口:${url##*:}

取协议:${url%%:*}

 

查找并替换:

${var/pattern/substi}:查找var所表示的字串中,第一次被Pattern匹配到的字串,并以substi替换之;

${var//patten/substi}:查找var所表示的字串中,所有被Pattern匹配到的字串,并以substi替换之;

 

${var/#pattern/substi}:以行首锚定的方式将pattern匹配至var所表示的字串上,如果能匹配,则以substi替换之;

${var/%pattern/substi}:以行尾锚定的方式将pattern匹配至var所表示的字串上,如果能匹配,则以substi替换之;

可使用?, *元字符;

 

查找并删除:

${var/pattern}:删除pattern匹配到的第一次出现;

${var//pattern}: 删除pattern匹配到的所有出现;

${var/#pattern}

${var/%pattern}

 

字符串大小写转换:

${var^^}:小写-->大写

${var,,}:大写-->小写

 

 

${var#word}   删除字符串var中开头匹配到work字符

${var%word}   删除字符串var中末尾匹配到work字符

test="test46789test"

echo  ${test#test}   #输出 46789test

echo  ${test%test}   #输出 test46789

 

basename  path  截取文件/目录名  

dirname path  截取文件/目录父路径

echo `basename  /etc/dsfs/mmm`  输出mmm

echo `dirname  /etc/dsfs/mmm`  输出/etc/dsfs/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

qq_26182553

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值