簡體   English   中英

將grep匹配管道插入sed

[英]Piping grep matches into sed

我有一個可能看起來像這樣的文件:

EntryName1
1234
1234
1234
EntryName2

EntryName3
1234
1234
1234
[...]

我需要刪除所有條目后跟一個空行。 我可以使用grep -E '^$' -B 1 myFile.txt空行和相應的grep -E '^$' -B 1 myFile.txt

現在,我想以某種方式將它們作為模式傳遞到sed中,以便從文件中刪除這些行。 我怎么做?

編輯:預期的輸出將如下所示(留空行也可以)。

EntryName1
1234
1234
1234
EntryName3
1234
1234
1234
[...]

一個較短的awk

awk 'p != "" && NF{print p} {p=$0} END{print p}' file

EntryName1
1234
1234
1234
EntryName3
1234
1234
1234
[...]

使用awk。

awk '/^$/ { a = ""; next }
     { printf "%s", a; a = $0 ORS }
     END { printf "%s",a }' file

帶有gawk和multichar RS支持:

gawk 'BEGIN{RS="\n[^\n]+\n\n"}1' file

暫無
暫無

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

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