【问题标题】:Delete everyting preceding and including a certain substring from variable从变量中删除之前并包括某个子字符串的所有内容
【发布时间】:2017-03-23 06:03:16
【问题描述】:

在 Bash 中,如何从变量中删除字符直到某个子字符串?

例子:

ananas1kiwi2apple1banana2tree

应该是这样的:

apple1banana2tree

本例中的子字符串为2

【问题讨论】:

    标签: bash sed cut


    【解决方案1】:

    如果要删除直到2 的子字符串,使用bash 参数扩展:

    ${var#*2}
    
    • # 从左到右进行非贪婪匹配,使用## 表示贪婪

    • #*2 匹配并丢弃变量 var 中的第一个 2

    示例:

    $ var='ananas1kiwi2apple1banana2tree'
    $ echo "${var#*2}"
    apple1banana2tree
    

    【讨论】:

      【解决方案2】:

      使用纯bashshell parameter expansion

      $ string="ananas1kiwi2apple1banana2tree"
      $ newString="${string#*2}"
      $ printf "%s\n" "$newString"
      apple1banana2tree
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-10-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多