我有一个看起来像这样的文件:
EntryName1
1234
1234
1234
EntryName2
EntryName3
1234
1234
1234
[...]
我需要删除所有条目后跟一个空行。我可以用grep -E '^$' -B 1 myFile.txt
复制空行和相应的entryName。
现在,我想以某种方式将它们作为模式传递到sed中,以便从文件中删除这些行。我该怎么办?
编辑:预期的输出应如下所示(留空行也可以)。
EntryName1
1234
1234
1234
EntryName3
1234
1234
1234
[...]
答案 0 :(得分:3)
较短的listWithResultMaps
:
awk
awk 'p != "" && NF{print p} {p=$0} END{print p}' file
答案 1 :(得分:1)
使用awk。
awk '/^$/ { a = ""; next }
{ printf "%s", a; a = $0 ORS }
END { printf "%s",a }' file
答案 2 :(得分:1)
具有gawk
和multichar RS
支持:
gawk 'BEGIN{RS="\n[^\n]+\n\n"}1' file