1

在设定的记录间隔内,我需要删除 4 行/记录。这可以用 awk 或 sed 完成吗?

我有一个文件,每 70 条记录就有一个换页符。这导致在我的输出中打印一个空行。

我想使用 awk 或 sed 删除换页前的四 (4) 行,因此我的页面现在有 66 行长。

那应该消除我的空白页。

我传递的文件是一个假脱机文件中的数千条记录,我希望有一个简单的解决方案。我试过了

sed -n -e '65~68p; 

但我认为我的 unix 机器上没有可用的,因为当我尝试运行该命令时出现错误。

4

3 回答 3

2
awk '{if ((NR%70) <65) print $0;}' inputfile

应该做的工作。

于 2012-12-20T19:19:11.403 回答
0
sed 'H;g;s:[^\n]::g;/.\{64\}/{N;N;N;s:.::g; x;s:\n::p;d};${x;s:\n::;p};d' FILE

此行将删除第 65, 65*2, ..., 65*K 行之后的下 3 行。

如果要删除多于 3 行,请添加更多 N;N;N;。

于 2012-12-20T21:27:15.740 回答
0

pbhd 在我发布之前给出了一个很好的解决方案,但如果你想使用 python 来做的话:

    import sys
    s = sys.stdin.read()
    for page in s.split('\f'):
        lines = page.splitlines()
        print '\n'.join(lines[:-4]) + '\f'
于 2012-12-20T19:26:29.940 回答