美文网首页
bash字符串操作的%/%%/#/##操作符

bash字符串操作的%/%%/#/##操作符

作者: CodingCode | 来源:发表于2021-06-28 08:56 被阅读0次
  1. 删除最短的前缀匹配子串:#

格式:${str#${prefix}}

从<str>的最左边开始匹配<prefix>,一旦满足,则删除匹配上的子串。

################### = "aabaabABBABB"
${aabaabABBABB#a}   =  "abaabABBABB"    # match="a"
${aabaabABBABB#aa}  =   "baabABBABB"    # match="aa"
${aabaabABBABB#aab} =    "aabABBABB"    # match="aab"
${aabaabABBABB#ab}  = "aabaabABBABB"    # match=""

#################### = "aabaabABBABB"
${aabaabABBABB#*a}   =  "abaabABBABB"    # match="a"
${aabaabABBABB#*aa}  =   "baabABBABB"    # match="aa"
${aabaabABBABB#*aab} =    "aabABBABB"    # match="aab"
${aabaabABBABB#*ab}  =    "aabABBABB"    # match="aab"

#################### = "aabaabABBABB"
${aabaabABBABB#a*}   =  "abaabABBABB"    # match="a"
${aabaabABBABB#aa*}  =   "baabABBABB"    # match="aa"
${aabaabABBABB#aab*} =    "aabABBABB"    # match="aab"
${aabaabABBABB#ab*}  = "aabaabABBABB"    # match=""

我们看到把*放在后面,结果和没有*是一样的,可以这么理解,因为#运算符本来就是前缀匹配,设想自动就带有*左右结尾。

  1. 删除最长的前缀匹配子串:##
#################### = "aabaabABBABB"
${aabaabABBABB##a}   =  "abaabABBABB"    # match="a"
${aabaabABBABB##aa}  =   "baabABBABB"    # match="aa"
${aabaabABBABB##aab} =    "aabABBABB"    # match="aab"
${aabaabABBABB##ab}  = "aabaabABBABB"    # match=""

####################  = "aabaabABBABB"
${aabaabABBABB##*a}   =      "bABBABB"    # match="aabaa"
${aabaabABBABB##*aa}  =      "bABBABB"    # match="aabaa"
${aabaabABBABB##*aab} =       "ABBABB"    # match="aabaab"
${aabaabABBABB##*ab}  =       "ABBABB"    # match="aabaab"

##################### =   "aabaabABBABB"
${aabaabABBABB##a*}   =   ""              # match="aabaabABBABB"
${aabaabABBABB##aa*}  =   ""              # match="aabaabABBABB"
${aabaabABBABB##aab*} =   ""              # match="aabaabABBABB"
${aabaabABBABB##ab*}  =   "aabaabABBABB"  # match=""
  1. 删除最短的后缀匹配子串:%
################### = "aabaabBAABAA"
${aabaabBAABAA%A}   = "aabaabBAABA"    # match="A"
${aabaabBAABAA%AA}  = "aabaabBAAB"     # match="AA"
${aabaabBAABAA%BAA} = "aabaabBAA"      # match="BAA"
${aabaabBAABAA%AB}  = "aabaabBAABAA"   # match=""

#################### = "aabaabBAABAA"
${aabaabBAABAA%*A}   = "aabaabBAABA"    # match="A"
${aabaabBAABAA%*AA}  = "aabaabBAAB"     # match="AA"
${aabaabBAABAA%*BAA} = "aabaabBAA"      # match="BAA"
${aabaabBAABAA%*AB}  = "aabaabBAABAA"   # match=""

#################### = "aabaabBAABAA"
${aabaabBAABAA%A*}   = "aabaabBAABA"    # match="A"
${aabaabBAABAA%AA*}  = "aabaabBAAB"     # match="AA"
${aabaabBAABAA%BAA*} = "aabaabBAA"      # match="BAA"
${aabaabBAABAA%AB*}  = "aabaabBA"       # match="ABAA"
  1. 删除最长的后缀匹配子串:%%
################### = "aabaabBAABAA"
${aabaabBAABAA%%A}   = "aabaabBAABA"    # match="A"
${aabaabBAABAA%%AA}  = "aabaabBAAB"     # match="AA"
${aabaabBAABAA%%BAA} = "aabaabBAA"      # match="BAA"
${aabaabBAABAA%%AB}  = "aabaabBAABAA"   # match=""

#################### = "aabaabBAABAA"
${aabaabBAABAA%%*A}   = ""              # match="aabaabBAABAA"
${aabaabBAABAA%%*AA}  = ""              # match="aabaabBAABAA"
${aabaabBAABAA%%*BAA} = ""              # match="aabaabBAABAA"
${aabaabBAABAA%%*AB}  = "aabaabBAABAA"  # match=""

#################### = "aabaabBAABAA"
${aabaabBAABAA%%A*}   = "aabaabB"        # match= "AABAA"
${aabaabBAABAA%%AA*}  = "aabaabB"        # match= "AABAA"
${aabaabBAABAA%%BAA*} = "aabaab"         # match="BAABAA"
${aabaabBAABAA%%AB*}  = "aabaabBA"       # match=  "ABAA"

相关文章

  • Python字符串

    1 序列 1.1 序列类型操作符 1.2 内建函数 字符串 2.1 字符串操作符 比较操作符:字符串大小按照ASC...

  • bash字符串操作的%/%%/#/##操作符

    删除最短的前缀匹配子串:# 格式:${str#${prefix}} 从 的最左边开始匹配 ,一旦满足,则删除匹配上...

  • Python初学(十)

    这章学习下字符串的操作。 字符串的操作 字符串操作符: 针对字符串,Python语言提供了几个基本操作符 字符串处...

  • 【Perl编程-6】正则表达式--替换+转化

    替换操作符 替换操作符 s/// 是匹配操作符的扩展,使用新的字符串替换指定的字符串。基本格式如下:s/PATTE...

  • 4.操作符

    一元操作符 递增递减操作符 前置型操作符 后置型操作符 递增递减操作符适用于字符串、布尔、浮点、null、unde...

  • Python格式化字符串

    格式化操作符(%) "%"是Python风格的字符串格式化操作符,非常类似C语言里的printf()函数的字符串格...

  • bash的三元操作符

    类似其他高级语言的(?:)操作符: 如果用标准的bash语句来实现就是:用if语句: 用case语句: 在bash...

  • js学习

    变量的声明 赋值 isNaN(n) 数值转换 parseInt 转换字符串 bool转换 比较操作符 三元操作符 ...

  • Python的一些基础方法

    判断字符串中是否包含子字符串,可以使用in操作符:

  • JavaScript基础知识-基本概念

    typeof操作符 typeof 操作符返回一个字符串,表示未经计算的操作数的类型。 在JavaScript最初的...

网友评论

      本文标题:bash字符串操作的%/%%/#/##操作符

      本文链接:https://www.haomeiwen.com/subject/bcwfultx.html