2017-06-15 104 views
-1

您好我是新来的贝壳写在文件B和就死在这: 我有一个像shell脚本从一个文件读了几行,并将它们

[area1] 

a 

b 

[area2] 

c 

d 

[area3] 

e 

f 

我想读的行文件中的一定面积并追加行到文件B.像[区域2],我期待阅读

c 

d 

也是区域名称是随机的,存储在变量$说AREA,所以我也将需要匹配变量而不是直接使用“[area2]”,所以我需要削减的是从等于$ AREA的行到下一个行开始“[”

我该如何做到这一点?任何帮助,将不胜感激!

回答

0

战略经济对话的写命令(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 
    
  • +0

    太感谢你了!有没有办法将文件追加到文件B?使用W似乎每次覆盖文件B ... – Amy964

    +0

    我编辑。抱歉回复晚了... – SLePort

    0
    a="area2" 
    sed '/\['"$a"'\]/,+4!d' A|sed '1,2d' >>B 
    
    相关问题