使用awk删除第n行

时间:2012-12-20 19:06:48

标签: unix sed awk

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

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

我想使用awk或sed在表单提要之前删除四(4)行,这样我的页面现在是66行。

这应该消除我的空白页。

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

sed -n -e '65~68p; 

但是我认为我的unix盒子上没有那个,因为我在尝试运行该命令时遇到错误。

3 个答案:

答案 0 :(得分:2)

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

应该做的工作。

答案 1 :(得分:0)

在我成功发布我的帖子之前,pbhd提供了一个很好的解决方案,但是这里是你想用python做的事情:

    import sys
    s = sys.stdin.read()
    for page in s.split('\f'):
        lines = page.splitlines()
        print '\n'.join(lines[:-4]) + '\f'

答案 2 :(得分: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;。