Linux shell字符串截取、替换、删除以及trim

10 篇文章 0 订阅
  1. 字符串截取

    • 从左向右截取第一个//后的字符串

      word=abcd-//master-01://httpab
      echo ${word#*//} 
      # 输出:master-01://httpab
      
    • 从左向右截取最后一个//后的字符串

      word=abcd-//master-01://httpab
      echo ${word##*//} 
      # 输出:httpab
      
    • 从右向左截取第一个//后的字符串

      word=abcd-//master-01://httpab
      echo ${word%//*} 
      # 输出:abcd-//master-01:
      
    • 从右向左截取最一个//后的字符串

      word=abcd-//master-01://httpab
      echo ${word%%//*} 
      # 输出:abcd-
      
    • 截取位置0后3个字符

      word=abcd-//master-01://httpab
      echo ${word:0:3} 
      # 输出:abc
      
    • 从位置1截取到末尾

      word=abcd-//master-01://httpab
      echo ${word:1} 
      # 输出:bcd-//master-01://httpab
      
    • 从位置-1截取到末尾,就是截取最后一个

      word=abcd-//master-01://httpab
      echo ${word:(-1)} 
      # 输出:b
      
  2. 字符串替换

    • 从左到右,匹配第一个,替换//为cd
      word=abcd-//master-01://httpab
      echo ${word/\/\//cd} 
      # 输出:abcd-cdmaster-01://httpab
      
    • 将所有匹配的//替换为cd
      word=abcd-//master-01://httpab
      echo ${word//\/\//cd} 
      # 输出:abcd-cdmaster-01:cdhttpab
      
    • 前缀匹配,只匹配从位置0开始的字符
      word=abcd-//master-01://httpab
      echo ${word/#ab/cd} 
      # -不是前缀,会匹配失败
      echo ${word/#-/cd}
      # 输出:abcd-cdmaster-01://httpab
      # 输出:abcd-//master-01://httpab
      
    • 后缀匹配,只匹配结尾字符
      word=abcd-//master-01://httpab
      echo ${word/%http*/xy} 
      # 输出:abcd-//master-01://xy
      echo ${word/%ab/xy}
      # 输出:abcd-//master-01://httpxy
      echo ${word/%ab*/xy}
      # 出现*,会从起始匹配
      # 输出:xy
      
  3. 字符串删除

    • 利用字符截取和替换,以及拼接可以实现删除字符的效果

    • 删除前3个字符

      word=abcd-//master-01://httpab
      echo ${word#*${word:0:3}} 
      # 输出:d-//master-01://httpab
      
    • 删除后3个字符

      word=abcd-//master-01://httpab
      echo ${word%*${word:(-3)}} 
      # 输出:abcd-//master-01://htt
      
    • 删除第一个ab

      word=abcd-//master-01://httpab
      echo ${word/ab/} 
      # 输出:cd-//master-01://httpab
      
    • 删除所有ab

      word=abcd-//master-01://httpab
      echo ${word//ab/} 
      # 输出:cd-//master-01://http
      
    • 删除最后一个ab

      word=abcd-//master-01://httpabcd
      echo ${word%ab*}${word##*ab}
      # 输出:abcd-//master-01://httpcd
      
  4. 字符串trim

    • 利用xargs可以实现trim
      word="   hello  wolrd  "
      word=`echo $word | xargs`
      echo $word
      # 输出:hello  wolrd
      

参考博客:https://www.cnblogs.com/gaochsh/p/6901809.html

  • 6
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

aabond

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

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

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

打赏作者

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

抵扣说明:

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

余额充值