删除特定行及其后的 17 行

删除特定行及其后的 17 行

我有一个报告,提取一些信息IP地址和主机名等。有些服务器的标题如下:NOTICE TO USERS(后面是大约17行文本信息)当我cat文件时,我不需要NOTICE(在某些服务器上还有 17 行)。我怎样才能摆脱它?

答案1

awk '/NOTICE TO USERS/ { lastdelline=NR+17 };
    lastdelline>0 && NR<=lastdelline { next; }; { print; }' inputfile

答案2

您可以使用下面的 sed 命令来实现相同的效果

sed '/NOTICE TO USERS/,+17d' filename

如果你想删除同一个文件中带有 NOTICE TO USERS 行的 17 行意味着你可以在 sed 命令中使用 -i 选项

sed -i '/NOTICE TO USERS/,+17d' filename

相关内容