如何添加带分隔符的多行行首?
how to add begin of line with multilines with delimiter?
我有这样一个文件:
输入:
---
a
b
c
d
---
a
b
c
d
---
a
b
c
d
我想在每个由 --- 分隔的块中添加相同的结构,例如:
输出:
---
1: a
2: b
3: c
4: d
---
1: a
2: b
3: c
4: d
---
1: a
2: b
3: c
4: d
我尝试像这样使用 sed:
sed -i '1s/a: //'
等等,但它不断添加到第一行。
此致。
一个awk
想法:
awk '{ pfx=++count ": " # set default prefix as incremented counter + ": "
if ([=10=] ~ /^---/) # if lines starts with "---" then ...
pfx=count="" # reset variables
print pfx [=10=] # print prefix plus current line
}' x
或作为 one-liner(无评论):
awk '{ pfx=++count ": "; if ([=11=] ~ /^---/) pfx=count=""; print pfx [=11=] }' x
这会生成:
---
1: a
2: b
3: c
4: d
---
1: a
2: b
3: c
4: d
---
1: a
2: b
3: c
4: d
我有这样一个文件:
输入:
---
a
b
c
d
---
a
b
c
d
---
a
b
c
d
我想在每个由 --- 分隔的块中添加相同的结构,例如:
输出:
---
1: a
2: b
3: c
4: d
---
1: a
2: b
3: c
4: d
---
1: a
2: b
3: c
4: d
我尝试像这样使用 sed:
sed -i '1s/a: //'
等等,但它不断添加到第一行。
此致。
一个awk
想法:
awk '{ pfx=++count ": " # set default prefix as incremented counter + ": "
if ([=10=] ~ /^---/) # if lines starts with "---" then ...
pfx=count="" # reset variables
print pfx [=10=] # print prefix plus current line
}' x
或作为 one-liner(无评论):
awk '{ pfx=++count ": "; if ([=11=] ~ /^---/) pfx=count=""; print pfx [=11=] }' x
这会生成:
---
1: a
2: b
3: c
4: d
---
1: a
2: b
3: c
4: d
---
1: a
2: b
3: c
4: d