如何使用SED命令从文件中删除行(实现详解)

sed 命令被称为流编辑器。sed 命令在 Linux 中用于进行基本的文本转换。Linux 的许多基本命令之一也是 sed 命令,它在文件操作中起着至关重要的作用。它有多种用途;一些主要内容如下。SED命令从文件中删除行?删除或删除与给定模式匹配的特定行。

  • 使用正则表达式删除行。
  • 根据文件的位置,删除特定行。
因此,如果你正在考虑使用 sed 命令从文件中删除行,请从头到尾阅读我们的文章。我们将向你简要介绍去除线条的方法,以及SED命令删除行示例。如何使用 SED 命令从文件中删除行?SED命令如何删除文件中的行?我们将在本文中使用不带 -i 的 sed 命令,因为它是一篇演示文章。类似的方法是“试运行”选项,它显示文件的所有值,而无需进行任何更改。使用 sed 命令,我们可以使用 -i 删除取决于环境的行。为了显示 sed 命令,我们创建了一个名为 LinuxhintOS.txt 的文件。为了提供更好的信息,我们将这些行号包含在以下内容中。根据位置从文件中删除行这部分将解释如何使用 sed 命令根据位置从文件“LinuxhintOS.txt”中删除行。首先,使用以下命令打开文件:
cat ~/< foldername>/< filename>

如何使用SED命令从文件中删除行(实现详解)

文章图片
SED命令从文件中删除行?现在执行以下命令删除第一行:
sed 'Nd' file

在上面的命令中:N  – 文件中的“第 N”行D  – 删除文件因此,让我们在示例中执行此命令以从文本文件中删除第 10 行:
cd Documentssed '10d' LinuxhintOS.txt

如何使用SED命令从文件中删除行(实现详解)

文章图片
SED命令删除行示例:从文件中删除最后一行如果我们必须从文件中删除最后一行,而不是上面使用的语法中的“N”,我们将使用“$”。这里,$ 代表最后一行。
sed '$d' file

在此之后,我们的文件将更改为这样的内容。一起删除第一行和最后一行如果我们想去掉第一行和最后一行,就必须结合上面两条命令。
sed 'Nd; $d' filename

使用此命令,我们的第一行和最后一行同时从文件中删除。
如何使用SED命令从文件中删除行(实现详解)

文章图片
如上图所示,第一行和最后一行已从文本文件中删除。删除一系列行sed 命令可以删除任何范围的行。为此,我们只需要输入“最小”和“最大”行号。在本例中,我们将删除 4 到 7 个数字的行。
sed '4,7d' file

删除这些范围的行后,我们的文件将如下所示。
如何使用SED命令从文件中删除行(实现详解)

文章图片
删除多行SED命令如何删除文件中的行?sed 还可以删除一组中的多行。如你所见,我们删除了本示例中的第三行、第六行、第八行和最后一行。
sed '3d; 6d; 8d; $d' file

应用上面编写的 sed 命令时,我们的文件“LinuxhintOS.txt”中会发生以下变化。
如何使用SED命令从文件中删除行(实现详解)

文章图片
删除指定行或指定范围以外的行SED命令从文件中删除行?通过 sed 命令,我们将那些命令中没有定义的文件行移除,即除了描述的那些行之外的行被移除。从这个文件中,我们将删除除数字 4 到 7 之外的其余行。
Sed '4,7! d' file

在这里,“!”的标志  表示我们不应该从文件中删除这个特定数字的行。!– 用于保留文件中的特定行数在此之后,我们的文件将如下所示:
如何使用SED命令从文件中删除行(实现详解)

文章图片
SED命令删除行示例:删除空白或空行下面写的 sed 命令从适当的文件中删除空白或空行。
sed '/^$/d' file

由于我们的文件中没有空白或空行,因此没有发生任何更改:
如何使用SED命令从文件中删除行(实现详解)

文章图片
根据模式从文件中删除行在第二部分,我们将看到在 sed 命令的帮助下,我们如何删除类似模式的行。删除包含模式的行在示例中,以下命令从文件“LinuxhintOS.txt”中删除与“System”模式匹配的行。
sed '/System/d' file

如何使用SED命令从文件中删除行(实现详解)

文章图片
所以,我们需要删除那些“不可用”的行。这就是我们将执行以下命令的原因:
sed '/Not Available/d’ LinuxhintOS.txt

如何使用SED命令从文件中删除行(实现详解)

文章图片
删除包含一个或多个字符串的行通过 sed 命令,我们可以从文件“LinuxhintOS.txt”中删除与“Not Updated”或“Not Available”模式匹配的行,该命令如下所示:
如何使用SED命令从文件中删除行(实现详解)

文章图片
sed '/Not Updated\|Not Available/d' LinuxhintOS.txt

如何使用SED命令从文件中删除行(实现详解)

文章图片
删除以特定字符开头的行我们可以通过 sed 命令删除以任何字符开头的所有行。我们创建了一个名为“LinuxhintOS.txt”的新文件,内容如下:
如何使用SED命令从文件中删除行(实现详解)

文章图片
SED命令如何删除文件中的行?下面的 sed 命令将删除所有以 'A' 字符开头的行。
sed '/^A/d' file

我们将从我们的文件中删除这些以“A”和“L”开头的行。为此,我们将使用以下命令。
sed '/^[ AL]/d' file

使用 sed,我们删除所有以“A”开头并以字符串“Linux”结尾的行。
sed '/^(A).*(Linux)/d' file

删除以指定字符结尾的行SED命令删除行示例:此 sed 命令删除所有以“m”结尾的行。
sed '/m$/d' file

以下 sed 命令将删除以 'M' 和 'X' 字符结尾的行。
sed '/[ xm]$/d' file

从我们的文件中删除以“M”和“X”结尾的字符行;然后,我们的文件将如下所示。删除所有以大写开头的行我们将使用以下命令从文件中删除所有这些行:一个大写字母。
sed '/^[ A-Z]/d' file

应用上述命令后,我们文件中以大写字母开头的所有行都将被删除,我们文件中的更改将是这样的。删除具有指定范围的匹配模式线SED命令从文件中删除行?在以下命令的帮助下,我们将从具有特定模式的某些已定义行中仅删除那些行。此示例仅从文件中 1 到 6 行之间删除具有 Linux 模式的行。
sed '1,6{/Linux/d; } file

应用该命令后,我们的文件“sed – demo-1.txt”将如下所示。仅当包含“openSUSE”模式时,我们才会使用以下 sed 命令删除第二行。
sed '2{/openSUSE/d; }' file

适当的命令将从我们的文件“sed – demo-1.txt”中删除第二行,因为它具有特定的“openSUSE”模式。适当的命令将从我们的文件“sed – demo-1.txt”中删除第二行,因为它具有特定的“openSUSE”模式。我们还可以使用 sed 命令删除与“系统”模式匹配的行和文件中的以下行。
sed '/System/{N; d; }' file

删除具有特定图案的线条你可以使用 sed 命令删除遵循“CentOS”模式的所有行。
sed '/Centos/,$d' file

删除包含数字/数字的行使用下面写的 sed 命令,我们可以删除所有包含 'digit' 的行。
sed '/[ 0-9]/d' file

通过对 sed 命令进行一些更改,我们将从文件中删除所有仅以数字开头的行。
sed '/^[ 0-9]/d' file

执行此命令后,所有以数字开头的行都将从我们的文件中删除。同样,通过对命令进行一些更改,我们将仅从文件中删除以数字结尾的那些行。
sed '/[ 0-9]$/d' file

从文件中删除包含字母字符的行SED命令如何删除文件中的行?使用 sed 命令,我们将从文件“LinuxhintOS.txt”中删除所有包含字母字符的行。
sed '/[ A-Za-z]/d' file

SED命令删除行示例总结SED命令从文件中删除行?本文展示了使用 sed 命令从文件中删除行的几个示例。我们看到在 sed 命令的帮助下,我们可以轻松地从文件中删除任何行。如果我们记住这些命令,那么我们在减少的同时节省了很多时间。

    推荐阅读