有人问过类似的问题,但它们是针对Powershell的。
我有一个Markdown文件,例如:
.
.
.
## See also
- [a](./A.md)
- [A Child](./AChild.md)
.
.
.
- [b](./B.md)
.
.
.
## Introduction
.
.
.
我希望将.md)
和.html)
之间的所有## See also
替换为## Introduction
:
.
.
.
## See also
- [a](./A.html)
- [A Child](./AChild.html)
.
.
.
- [b](./B.html)
.
.
.
## Introduction
.
.
.
我在Bash中尝试过这种方式
orig="\.md)"; new="\.html)"; sed "s~$orig~$new~" t.md -i
但是,这将替换文件中的所有位置。但我希望替换仅发生在## See also
和## Introduction
能否请您提出更改建议?我正在使用awk和sed,因为我对此不太熟悉。我也知道一些Python,是否建议在Python中进行这样的脚本编写(如果它对于sed或awk来说太复杂)?
答案 0 :(得分:6)
$ sed '/## See also/,/## Introduction/s/\.md/.html/g' file