2017-06-15 142 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 
    
    相關問題