|
1
3
更新
让我们尝试一种稍微简单的方法
这将累积所有非空,直到1)命中一个空,这将清除并重新启动如上所述的缓冲区,或2)我们到达缓冲区完好无损的EOF。
所以整个逻辑可以归结为:清除空行上的缓冲区,否则将非空行堆积起来并在最后打印。
候补上述方法是有效的,但可能在某些数据集上建立一个非常大的模式缓冲区。如果这不是问题,那就继续吧。 或者,如果您希望以简单的步骤进行,请不要介意更多的进程在每个进程中做更少的工作,而希望使用更少的内存:
这会在
|
|
|
2
1
|
|
|
3
1
使用GNU
这个
|
|
4
0
试试这个:
|
|
|
5
0
你可以试试sed:
|
|
|
6
0
|