【问题标题】: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 或更长,即。它将保持单个 _ 不变。