sed 命令被称为流编辑器。sed 命令在 Linux 中用于进行基本的文本转换。Linux 的许多基本命令之一也是 sed 命令,它在文件操作中起着至关重要的作用。它有多种用途;一些主要内容如下。SED命令从文件中删除行?删除或删除与给定模式匹配的特定行。
- 使用正则表达式删除行。
- 根据文件的位置,删除特定行。
cat ~/<
foldername>/<
filename>
文章图片
SED命令从文件中删除行?现在执行以下命令删除第一行:
sed 'Nd' file
在上面的命令中:N – 文件中的“第 N”行D – 删除文件因此,让我们在示例中执行此命令以从文本文件中删除第 10 行:
cd Documentssed '10d' LinuxhintOS.txt
文章图片
SED命令删除行示例:从文件中删除最后一行如果我们必须从文件中删除最后一行,而不是上面使用的语法中的“N”,我们将使用“$”。这里,$ 代表最后一行。
sed '$d' file
在此之后,我们的文件将更改为这样的内容。一起删除第一行和最后一行如果我们想去掉第一行和最后一行,就必须结合上面两条命令。
sed 'Nd;
$d' filename
使用此命令,我们的第一行和最后一行同时从文件中删除。
文章图片
如上图所示,第一行和最后一行已从文本文件中删除。删除一系列行sed 命令可以删除任何范围的行。为此,我们只需要输入“最小”和“最大”行号。在本例中,我们将删除 4 到 7 个数字的行。
sed '4,7d' file
删除这些范围的行后,我们的文件将如下所示。
文章图片
删除多行SED命令如何删除文件中的行?sed 还可以删除一组中的多行。如你所见,我们删除了本示例中的第三行、第六行、第八行和最后一行。
sed '3d;
6d;
8d;
$d' file
应用上面编写的 sed 命令时,我们的文件“LinuxhintOS.txt”中会发生以下变化。
文章图片
删除指定行或指定范围以外的行SED命令从文件中删除行?通过 sed 命令,我们将那些命令中没有定义的文件行移除,即除了描述的那些行之外的行被移除。从这个文件中,我们将删除除数字 4 到 7 之外的其余行。
Sed '4,7! d' file
在这里,“!”的标志 表示我们不应该从文件中删除这个特定数字的行。!– 用于保留文件中的特定行数在此之后,我们的文件将如下所示:
文章图片
SED命令删除行示例:删除空白或空行下面写的 sed 命令从适当的文件中删除空白或空行。
sed '/^$/d' file
由于我们的文件中没有空白或空行,因此没有发生任何更改:
文章图片
根据模式从文件中删除行在第二部分,我们将看到在 sed 命令的帮助下,我们如何删除类似模式的行。删除包含模式的行在示例中,以下命令从文件“LinuxhintOS.txt”中删除与“System”模式匹配的行。
sed '/System/d' file
文章图片
所以,我们需要删除那些“不可用”的行。这就是我们将执行以下命令的原因:
sed '/Not Available/d’ LinuxhintOS.txt
文章图片
删除包含一个或多个字符串的行通过 sed 命令,我们可以从文件“LinuxhintOS.txt”中删除与“Not Updated”或“Not Available”模式匹配的行,该命令如下所示:
文章图片
sed '/Not Updated\|Not Available/d' LinuxhintOS.txt
文章图片
删除以特定字符开头的行我们可以通过 sed 命令删除以任何字符开头的所有行。我们创建了一个名为“LinuxhintOS.txt”的新文件,内容如下:
文章图片
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 命令的帮助下,我们可以轻松地从文件中删除任何行。如果我们记住这些命令,那么我们在减少的同时节省了很多时间。
推荐阅读
- 如何安装oh-my-zsh并将其与ZSH一起使用()
- 如何在Apache中启用调试日志(详细实现介绍)
- 如何加强Apache Tomcat的安全性(详细实现介绍)
- 如何在Windows上安装Apache Tomcat(详细步骤图解)
- 如何为Apache Tomcat设置负载平衡(详细实现步骤)
- 如何解决Apache Tomcat内存不足错误(解决办法介绍)
- 如何设置Apache Tomcat反向代理(详细实现步骤)
- 如何在Linux中将输出重定向到文件(详细解决方法)
- Linux如何强制终止屏幕会话(解决办法)