簡體   English   中英

匹配后刪除行,直到出現空白行

[英]Remove lines after match, until blank line occurs

我有一個ldif文件,正在檢索匹配的行,以及下面的那些行,直到到達空白行。 這很好。

$ awk '/dn:\ cn=test/,/pattern|^$/' $file
dn: cn=test,cn=Users,dc=test,dc=com
cn: John
sn: Smith
givenname: Test
mail: test@test.com
userpassword: password
uid: test
defaultgroup: cn=test,cn=test01,cn=groups,dc=test,dc=com
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetorgperson
objectclass: user
objectclass: user2

我想知道的是如何從文件中刪除這些行?

要從輸入文件中刪除這些行,可以使用!取反范圍! ,因此僅打印其他行:

awk '!(/dn:\ cn=test/,/pattern|^$/)' "$file" > tmp && mv tmp "$file"

輸出將重定向到一個臨時文件,然后原始文件將被覆蓋。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM