[英]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.