2016-01-23 43 views
0

在發佈這個問題之前,我嘗試了很多,但是正則表達式超出了我的能力 並且我失敗了幾次,而且我找不到我需要用Google搜索的內容或堆棧溢出。刪除一段文字,直到使用sed的第一個空白行

這裏是我的示例文件:

Host xmpp2 
    HostName 172.18.0.42 
    User root 
    Port 22 

Host test 
    HostName 172.18.201.2 
    User root 
    Port 2223 
    IdentityFile /Users/arash/idkey.pem 

Host afra 
    HostName 79.175.169.10 
    User root 
    Port 22 

Host hv1 
    HostName 172.18.0.4 
    User root 
    Port 22 

Host hv2 
    HostName 172.18.0.5 
    User root 
    Port 22 

我想刪除例如該塊

Host test 
    HostName 172.18.201.2 
    User root 
    Port 2223 
    IdentityFile /Users/arash/idkey.pem 

或任何其他塊。如果這些文本塊中的任何一個使用特定數量的行,但現在它可能是4行或5行或更多,所以我需要從主機移到第一個空行,而不是特定行數。

+0

Arash的,請嘗試* *寫的東西,而不是僅僅描述的問題,並要求別人寫的東西給你。 StackOverflow非常有價值,不是因爲您可以在這裏獲得免費的編程服務,而是因爲它可以幫助您解決自己的編程難題。發佈一些代碼,解釋你認爲它應該起作用的原因,告訴我們你的結果,無論它們是錯誤還是意外輸出。我們將幫助您修復代碼。 – ghoti

回答

2
sed '/^Host test$/,/^$/d' file 

輸出:

 
Host xmpp2 
    HostName 172.18.0.42 
    User root 
    Port 22 

Host afra 
    HostName 79.175.169.10 
    User root 
    Port 22 

Host hv1 
    HostName 172.18.0.4 
    User root 
    Port 22 

Host hv2 
    HostName 172.18.0.5 
    User root 
    Port 22 

如果你要編輯的文件 「到位」 添加的sed的選項-i


參見:The Stack Overflow Regular Expressions FAQ

相關問題