用不同的字符串替换两个相同的字符

用不同的字符串替换两个相同的字符

我希望将 Github Markdown 语法中使用的效果添加到命令行中。以这个字符串为例。

`This` is an `example` of Markdown `code snippets.`

我想将每个第一个反引号更改为(假设)FOO,但将所有其他反引号更改为 BAR。我该如何在 sed 中处理这个?

答案1

这里似乎有两种可能的情况值得关注:

将所有偶数出现的 ` 替换为一种模式,奇数出现的替换为另一种模式(也在这个答案):

sed 's:`\([^`]`*\)`:FOO\1BAR:g'

将第一个替换为一种模式,将剩余的替换为另一种模式:

sed 's:`:FOO:' | sed 's:`:BAR:g'

相关内容