【问题标题】:Linux BASH - Replace multiple occurrences of a char, omitting single occurrenceLinux BASH - 替换多次出现的字符,省略一次出现
【发布时间】:2014-04-13 20:40:32
【问题描述】:

专家: 这有点难以解释。我需要将一个字符的多次出现替换为其他字符(我知道这可以通过使用 sed 或 tr 来完成),棘手的部分是我需要保持单个出现的字符原样。

例如,将多次出现的“_”替换为“;”:

这就是我所拥有的: “这___________is_a____string”

这是我需要的: “This;is_a;string”

有什么办法吗?

提前致谢

【问题讨论】:

    标签: string bash replace character


    【解决方案1】:

    使用 sed,您可以执行以下操作:

    echo "This___________is_a____string" | sed 's/_\{2,\}/;/g'
    

    输出:

    This;is_a;string
    

    最重要的部分是 {2,} 量词,表示匹配任何 _ 2 或更长,即。它将保持单个 _ 不变。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-10-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-05
      • 2011-08-25
      • 2016-11-02
      相关资源
      最近更新 更多