• shell字符串处理


    字符串截取

    • 字符长度

      [user@host dir]$ str=123abc123
      [user@host dir]$ echo ${#str}
      9
      
    • 从左边截取
      ${string:position:length} :从字符串 string 的 position 位置截取 length 个字符串

      [user@host dir]$ str=123abc123
      [user@host dir]$ echo ${str:3:3} 
      abc
      [user@host dir]$ echo "${str:0:${#str}-3}"
      123abc
      
    • 从右边截取
      ${string:空格 -lenth} 截取字符串 string 的后 lenth 个位置

        #请注意 -4 前面的 空格符号
        [user@host dir]$ str=123abc123
        [user@host dir]$ echo ${str: -4}
        c123 
        #空格可以看成是 0
        [user@host dir]$ echo ${str:0-4}
        c123
        #1-4就相当于 空格-3 或者说 0-3
        [user@host dir]$ echo ${str:1-4}
        123
      

    匹配删除

    • 从左匹配删除 # 和 ##
      ${string#mact_string}:从 string 左边开始匹配,删除匹配到的字符,尽可能少删除字符
      ${string##mact_string}:从 string 左边开始匹配,删除匹配到的字符,尽可能多删除字符
      其中 mact_string 可以是一个正则表达式

      [user@host dir]$ str=123abc123
      [user@host dir]$ echo "${str##*1}"
      23
      [user@host dir]$ echo "${str#*1}"
      23abc123
      [user@host dir]$ echo "${str##1}"
      23abc123
      [user@host dir]$ echo "${str#1}"
      23abc123
      
    • 从右匹配删除 % 和 %%

      [user@host dir]$ str=123abc123
      [user@host dir]$ echo ${str%%2*3}
      1
      [user@host dir]$ echo ${str%2*3}
      123abc1
      

    匹配替换

    • 普通替换
      ${string/match_string/replace_string}:将 string 中第一个 match_string 替换成 replace_string
      ${string//match_string/replace_string}:将 string 中的 match_string 全部替换成 replace_string
      [user@host dir]$ str=123abc123
      [user@host dir]$ echo "${str/123/r}"
      rabc123
      [user@host dir]$ echo "${str//123/r}"
      rabcr
      
    • 前后缀替换
      ${string/#match_string/replace_string}:将 string 中第一个 match_string 替换成 replace_string
      ${string/%match_string/replace_string}:将 string 中的 match_string 全部替换成 replace_string
      [user@host dir]$ str=123abc123
      [user@host dir]$ echo "${str/#123/r}"
      rabc123
      [user@host dir]$ echo "${str/%123/r}"
      123abcr
      
    • 正则匹配
      match_string 可以是一个正则表达式
      [user@host dir]$ str=123abc123
      [user@host dir]$ echo "${str/3*1/r}"
      12r23
  • 相关阅读:
    $.data(elem, key, val) 和 elem.data(key, val)
    支付宝调起,应用签名失败,请联系商家
    关于load方法加载时间问题
    你学过的每一样东西,你遭受的每一次苦难,都会在你一生中的某个时候派上用场。 ——佩内洛普·菲兹杰拉德 《离岸》
    iOS视图生命周期总结(别人博客荡来的)
    闲言(诗三百三首)
    iOS 点击WebView中的链接,跳转指定控制器
    IOS 版本号大小比较
    iOS二维码,条形码扫描问题
    IOS使用个推遇到的坑
  • 原文地址:https://www.cnblogs.com/igoodful/p/13055412.html
Copyright © 2020-2023  润新知