在 Linux Mint 20 中使用“sed”命令删除单行和多行

介绍:

Linux 中的“sed”命令是一个多用途命令,用于替换、查找、替换、插入、删除和搜索文件中的文本。 实际上,“sed”代表流编辑器。 在本文中,我们打算探索使用此命令从 Linux Mint 20 中的文件中删除单行和多行。

但是,在继续使用这些方法之前,我们想与您分享此命令的一般语法,如下所示:

$ sed [option] [filename]

此外,对于下面讨论的所有方法,我们将使用名为 List.txt 的相同示例文本文件。 我们的示例文件的内容如下所示:

在 Linux Mint 20 中使用“sed”命令删除单行的方法:

如果要使用“sed”命令从文件中删除单行,则根据其位置,可以选择以下两种方法之一:

方法#1:删除除最后一行以外的任何单行:

要从文件中删除除最后一行之外的任何行,您必须以如下所示的方式运行“sed”命令:

$ sed ‘NUMd’ filename

在这里,您需要将 NUM 替换为要删除的行的行号 example ‘1d’ 表示文件的第一行,后跟该文件的确切名称。

从下图中可以看出,我们的原始文本文件的第一行已经被删除了。

方法#2:删除最后一行:

现在,如果要删除文件的最后一行,则必须以如下所示的方式运行“sed”命令:

$ sed ‘$d’ filename

这里,’$’ 符号对应于指定文件的最后一行。

从下图的输出可以看出,我们的原始文本文件的最后一行已经被删除了。

在 Linux Mint 20 中使用“sed”命令删除多行的方法:

如果您想使用“sed”命令从文件中删除多行,那么根据您的具体需要,您可以选择以下三种方法之一:

方法#1:删除一系列行:

要删除指定范围的行,您必须以如下所示的方式执行“sed”命令:

$ sed ‘NUM, NUM2d’ filename

这里,NUM 代表删除的起始行号,而 NUM2 代表删除的结束行号。 我们想从指定文件中删除第 1-3 行,因此我们将 NUM 替换为 1,将 NUM2 替换为 3。

您可以从下图中显示的输出中看到,已成功从我们的文件中删除了第 1-3 行。

方法#2:删除一些特定的行:

如果您不想删除整个范围的行,而是想随机选择一些行进行删除,那么您必须按如下所示的方式执行“sed”命令:

$ sed ‘NUMd;NUM2d; NUM3d;….’ filename

在这里,NUM、NUM2 和 NUM3 指的是要删除的所有不同行的行号。

从下图中可以看到,我们指定的行已经被成功删除了。

方法#3:删除指定范围以外的所有行:

最后,如果要从文件中删除指定范围以外的所有行,则必须按如下所示的方式执行“sed”命令:

$ sed ‘NUM, NUM2!d’ filename

这里,NUM 代表起始行号,NUM2 代表要防止删除的行范围的结束行号。

您可以从下图中看到,除了指定范围之外的所有其他行都已从我们的文件中成功删除。

结论:

本文向您解释了 Linux Mint 20 中“sed”命令的众多用途之一。通过以本文所述的方式使用此命令,您将能够非常方便地从 Linux 上的任何文件中删除行。