特定の行とその後の17行を削除[重複]

特定の行とその後の17行を削除[重複]

IPアドレス、ホスト名など、一部の情報を抽出するレポートがあります。一部のサーバーには次のヘッダーがあります。 NOTICE TO USERS(約17行のテキスト情報が続きます)ファイルを分類するときに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

関連情報