【发布时间】:2021-04-05 21:45:47
【问题描述】:
我有一个 markdown 文件,其中的部分由标题分隔。我只想在特定部分执行搜索和替换;但是,每个部分都有相似的内容,因此全局搜索和替换最终会影响所有部分。因此,我需要以某种方式将搜索和替换限制在文件的某些部分。
例如,假设我想在# Section 1、# Section 3 和# Section 4 下用bar 替换foo 的所有 个实例,而# Section 2 和# Section 5 保持不变,如下图
示例输入:
# Section 1
- foo
- foo
- Unimportant Item
- foo
- Unimportant Item
# Section 2
- foo
- Unimportant Item
# Section 3
- foo
- Unimportant Item
# Section 4
- foo
- Unimportant Item
- foo
# Section 5
- foo
- foo
样本输出
# Section 1
- bar
- bar
- Unimportant Item
- bar
- Unimportant Item
# Section 2
- foo
- Unimportant Item
# Section 3
- bar
- Unimportant Item
# Section 4
- bar
- Unimportant Item
- bar
# Section 5
- foo
- foo
如果我不必担心各个部分,则使用全局搜索和替换将是微不足道的
sed -i 's/foo/bar/g' <input_file>
但我不确定sed 是否能够检查上下文以允许我正在寻找的内容。
【问题讨论】:
标签: bash awk sed substitution