Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 将grep匹配导入sed_Bash - Fatal编程技术网

Bash 将grep匹配导入sed

Bash 将grep匹配导入sed,bash,Bash,我有一个文件可能如下所示: EntryName1 1234 1234 1234 EntryName2 EntryName3 1234 1234 1234 [...] 我需要删除所有后跟空行的条目。我可以用grep-E'^$'-b1myfile.txt将空行和对应的entryName进行grep 现在我想以某种方式将这些作为模式导入sed,以便从文件中删除这些行。我该怎么做 编辑:预期的输出将是这样的(留空行也可以)。 使用awk awk '/^$/ { a = ""; next }

我有一个文件可能如下所示:

EntryName1
1234
1234
1234
EntryName2

EntryName3
1234
1234
1234
[...]
我需要删除所有后跟空行的条目。我可以用
grep-E'^$'-b1myfile.txt
将空行和对应的entryName进行grep

现在我想以某种方式将这些作为模式导入sed,以便从文件中删除这些行。我该怎么做

<>编辑:预期的输出将是这样的(留空行也可以)。 使用awk

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

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

较短的
awk

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


较短的
awk

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


使用
gawk
和multichar
RS
支持:

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

使用
gawk
和multichar
RS
支持:

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

你能告诉我们预期的产量吗?谢谢,好主意。编辑了OP并添加了预期的结果。您能告诉我们预期的输出吗?谢谢,好主意。编辑了OP并添加了预期结果。我应该指出,并非所有条目都以“Entry”开头。这只是一个玩具的例子。我的错。我应该指出,并非所有条目都以“Entry”开头。这只是一个玩具的例子。我的错。