介绍:
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 上的任何文件中删除行。