Shell 字符串操作(截取、替换、去头、去尾)

一、截取

  • 格式:${变量:起始位置:长度}

    # 字符串
    phone=0123456789
    
    # 从 1 索引位置开始截取,截取到尾部,包含 1 位置
    echo ${phone:1}
    # 输出结果
    123456789
    
    # 从 1 索引位置开始截取 6 位,包含 1 位置
    echo ${phone:1:6}
    # 输出结果
    123456
    
    # 从 1 索引位置开始截取,截取到倒数第 2 位,不包含倒数第 2 位,这种方式有的解释器不支持,会提示不能小于 0
    echo ${phone:1:-2}
    # 输出结果
    1234567
    

二、替换

  • 格式:

    • 替换一个结果:${变量/旧字符串/新字符串}

    • 替换全部结果:${变量//旧字符串/新字符串}

    # 字符串
    phone=66668888
    
    # 单个替换
    echo ${phone/6/0}
    # 输出结果
    06668888
    
    # 全部替换
    echo ${phone//6/0}
    # 输出结果
    00008888
    

三、去头

  • 格式:

    • 从左向右,最短匹配删除:${变量#关键词}

    • 从左向右,最长匹配删除:${变量##关键词}

    # 字符串
    phone=1-22-333-4:555-6-777
    
    # 最短匹配删除
    echo ${phone#*-}
    # 输出结果
    22-333-4:555-6-777
    
    # 最长匹配删除
    echo ${phone##*-}
    # 输出结果
    777
    
    # 最短匹配删除
    echo ${phone#*:}
    # 输出结果
    555-6-777
    

四、去尾

  • 格式:

    • 从右向左,最短匹配删除:${变量%关键词}

    • 从右向左,最长匹配删除:${变量%%关键词}

    # 字符串
    phone=1-22-333-4:555-6-777
    
    # 最短匹配删除
    echo ${phone%-*}
    # 输出结果
    1-22-333-4:555-6
    
    # 最长匹配删除
    echo ${phone%%-*}
    # 输出结果
    1
    
    # 最短匹配删除
    echo ${phone%:*}
    # 输出结果
    1-22-333-4
    
  • 4
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

卡尔特斯

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

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

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

打赏作者

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

抵扣说明:

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

余额充值