2014-10-09 170 views
0

爲了項目的目的,我只能使用sed,而不是grep,awk或print。使用sed刪除多行

我該如何使用sed來刪除行開始,比如說bbbb或eeee,直到包名的末尾。 每個包的結尾並不是唯一且隨機的,行數也是隨機的,有時候9行,有時是4或5.

不能得到這個工作。由於我可以控制輸入的唯一事情是要開始的包名稱,但是如何將其刪除到該包的末尾。

  Package: aaaa 
      Status: 
      Priority: 
      Section: 
      Installed-Size: 
      Maintainer: 
      Architecture: 
      Version: 
      Depends: 
      Description: 
      Name: 
      Icon 

      Package: bbbb 
      Status: 
      Priority: 
      Section: 
      Installed-Size: 
      Maintainer: 
      Architecture: 
      Version: 
      Depends: 
      Description: 
      Name: 
      Homepage: 


      Package: cccc 
      Status: 
      Priority: 
      Section: 
      Depends: 
      Description: 
      Name: 
      Homepage: 


      Package: dddd 
      Status: 
      Priority: 
      Section: 
      Installed-Size: 
      Maintainer: 
      Architecture: 
      Version: 
      Depends: 
      Description: 
      Name: 
      Homepage: 


      Package: eeee 
      Status: 
      Priority: 
      Section: 
      Installed-Size: 
      Maintainer: 
      Architecture: 
      Version: 




      Package: dddd 
      Status: 
      Priority: 
      Section: 
      Installed-Size: 
      Maintainer: 
      Architecture: 
      Text: 




      Package: ffff 
      Status: 
      Priority: 
      Section: 
      Installed-Size: 
      Maintainer: 
      Architecture: 
      Version: 
      Depends: 
      Description: 
      Name: 
      Link: 



      Package: ggg 
      Status: 
      Priority: 
      Section: 
      Installed-Size: 
      Depends: 
      Description: 
      Name: 
      Homepage: 
+0

請重新問你的問題。你試圖完成的是完全不可理解的。也許期望的輸出將有助於... – St0fF 2014-10-09 07:43:27

+1

並分享您嘗試過的以及您搜索的內容。 SO不是免費的代碼服務。 – Tensibai 2014-10-09 07:44:10

+0

而你的答案已經在[此線程](http://unix.stackexchange.com/questions/10226/multiline-pattern-match-using-sed-awk-or-grep)你只需要適應它 – Tensibai 2014-10-09 07:53:20

回答

1
sed '/Package: bbbb/,/^ *$/d' YourFile 

假設你bbbb是pacakage(在樣品看到任何其他次數)和paragraphe端與一個空行的名稱(只允許是空間炭)

+0

它的工作。謝謝。順便說一句,它不是作業,我嘗試過其他方法,但不是這樣。所以它對我來說是一件新事物。感謝分享。 – 2014-10-09 10:50:26

1
awk '/bbbb/{b=1;next}b==1&&/Package/{b=0}b==0' input.txt 

移除線從bbbb直到它找到下一個Package文本

+0

OP表示他們不能在這個'Project'中使用awk – 2014-10-09 08:15:55

+0

@Jidder,它被標記爲'awk',它被重新標記。 – Ashkan 2014-10-09 08:17:04

+0

儘管他們不想要awk解決方案,但它在第一句話中已經說過。這顯然是錯誤的。 – 2014-10-09 08:20:56