从文件中搜索短语后删除特定行的命令

Gna*_*nam 0 linux unix command-line-interface

我正在寻找执行/执行以下操作的 Linux 命令的帮助:

在给定文件中不区分大小写地搜索特定单词/短语,然后删除/删除紧邻的下一个“n”行,包括在给定文件中匹配单词/短语的行。

示例: 如果我尝试不区分大小写地搜索短语“CREATE FUNCTION plpgsql_call_handler”,并且它在第 102644 行匹配,那么我希望从给定文件中删除第 102644 行和紧接其后的 2 行。在这种情况下,我希望删除行号。102644、102645、102646。

Sir*_*rex 5

sed -i '/CREATE FUNCTION plpgsql_call_handler/I ,+2d' <filename>

相信这会奏效。在愤怒地尝试之前先备份文件。