![删除特定行及其后的 17 行](https://linux22.com/image/130804/%E5%88%A0%E9%99%A4%E7%89%B9%E5%AE%9A%E8%A1%8C%E5%8F%8A%E5%85%B6%E5%90%8E%E7%9A%84%2017%20%E8%A1%8C.png)
我有一个报告,提取一些信息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