嗨,我是shell的新手并且坚持这个: 我有文件A喜欢
[area1]
a
b
[area2]
c
d
[area3]
e
f
我想读取某个区域的行并将这些行附加到文件B.就像[area2]一样,我希望阅读
c
d
区域名称也是随机的并且存储在变量中说$ AREA,所以我还需要匹配变量而不是直接使用“[area2]”,所以我需要剪切的是等于$的行下一行的区域以“[”
开头我怎样才能做到这一点?任何帮助将不胜感激!
答案 0 :(得分:0)
Sed有一个写命令(w
)可用于将输出重定向到文件:
AREA="area2";
sed '/\['"$AREA"'\]/,/^\[/!d;//d;w B' A
/\['"$AREA"'\]/,/^\[/!d
:从您的区域值打印直到下一行的行[
//d
:删除与地址匹配的行(此处为[area2]
和[area3]
)w B
:写入文件B 将输出附加到文件B:
sed '/\['"$AREA"'\]/,/^\[/!d;//d;' A >> B
答案 1 :(得分:0)
a="area2"
sed '/\['"$a"'\]/,+4!d' A|sed '1,2d' >>B