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

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

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

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

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

答案1

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

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

相关内容