shell脚本从文件A中读取几行并将其写入文件B.

时间:2017-06-15 05:24:48

标签: shell sed

嗨,我是shell的新手并且坚持这个: 我有文件A喜欢

[area1]

a

b

[area2]

c

d

[area3]

e 

f

我想读取某个区域的行并将这些行附加到文件B.就像[area2]一样,我希望阅读

c

d

区域名称也是随机的并且存储在变量中说$ AREA,所以我还需要匹配变量而不是直接使用“[area2]”,所以我需要剪切的是等于$的行下一行的区域以“[”

开头

我怎样才能做到这一点?任何帮助将不胜感激!

2 个答案:

答案 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