【发布时间】:2021-12-13 04:52:30
【问题描述】:
如何在每个多行范围块之前插入一行并在 Windows 上的 gnu sed 中缩进这些块?这些文件包含许多以 ``` 开头和结尾的不同长度的代码块。使用单线模式对许多类似问题的答案不使用范围。有两个类似的问题:Insert line below text range with sed 和sed: Appending after a block。
此代码根据需要缩进所有代码块:
sed '/```/,/```$/ s/\(.*\)/ \1/' test.md
我不明白如何在每个代码块之前插入 === 行,但我知道在插入行后需要使用 {} 分组来处理块。上面的问题似乎更复杂,需要缓冲区,但这个文件应该能够在没有缓冲区的情况下按顺序处理。
我希望这样的尝试应该适用于组之前的换行细节:
sed '/```/,/```$/ {s/\(.*\)/ \1/}' test.md
test.md
a
b
```
c
d
e
```
f
g
必填
a
b
===
```
c
d
e
```
f
g
【问题讨论】: