2016-10-03 126 views
-1

我如何才能使換行只有在開始和結束時纔有值。例如 我有這些線Sed中的特殊替換

Line 1: http_access allow acl1 acl2 
Line 2: http_access deny acl1 

我希望發生口渴的http_access否認我ACL1只是刪除線2.當使用sed 's/http_access deny acl1/mi_nueva_regla/g' /file修改我的兩行。

+1

這看起來不正確,請仔細檢查您的內容。另外,你不需要'g'後綴,但這不是問題。 – karakfa

+0

給定的///命令只會改變一行。 –

+0

請包括一些示例輸入和預期輸出作爲[mcve]的一部分。這將使其他人更容易複製和理解你所看到的內容,並提高你獲得有用答案的機會。 –

回答

0

給定一個輸入文件file.txt的

$ cat file.txt 
http_access allow acl1 acl2 
http_access deny acl1 
http_access allow acl2 acl3 
http_access deny acl1 acl3 

爲了除去含有http_access deny與GNU僅第一行的sed:

sed '0,/http_access deny/{/http_access deny/d}' file.txt 

或更短:

sed '0,/http_access deny/{//d}' file.txt 

輸出:

http_access allow acl1 acl2 
http_access allow acl2 acl3 
http_access deny acl1 acl3 
+0

'0'地址是GNU'sed'擴展名。 – tripleee