由于分页,我有一个文件,如果不能在当前页面上打印数据,则会复制标题行。例如: 高
eading
data1
data2
data3 ...
然后在页面底部:
NEW Heading
Heading line2
Heading line3
; no more room on this page so a new page is generated and duplicates above -
NEW Heading
Heading line2
Heading line3
所以基本上我需要存储3行,向前看3行,如果匹配,则从文件中删除重复的3行
答案 0 :(得分:0)
AWK无法做善良的前瞻性工作。 AWK是面向流的。
文件示例:
$ cat example
Heading
data1
data2
data3
NEW Heading
Heading line2
Heading line3
NEW Heading
Heading line2
Heading line3
使用关联数组的不干净的AWK(+ sort)hack解决方案:
$ awk '{ if ( arr[$0]=="" ) arr[$0]=NR; } END { for (i in arr) print(arr[i] " " i); }' example | sort -n | awk -F'^[0-9]+ ' '{ print($NF); }'
Heading
data1
data2
data3
NEW Heading
Heading line2
Heading line3
对于干净的GAWK解决方案(在内部使用排序),您可以研究: