📜  在 sed 行中过滤匹配 - Shell-Bash (1)

📅  最后修改于: 2023-12-03 15:07:49.143000             🧑  作者: Mango

在 sed 行中过滤匹配 - Shell-Bash

sed 是一种常用的 Linux 命令行工具,它可以用于对文本进行替换、删除、过滤等操作。本文将介绍 sed 中如何过滤匹配行。

命令格式

sed 的过滤匹配命令基本格式如下:

sed '/[匹配规则]/[命令]' file

其中,/[匹配规则]/ 是一个正则表达式,用于匹配符合条件的行,[命令] 能够在匹配成功的行上执行指定的命令或操作。

示例

以下是 sed 过滤匹配的示例。

假设我们有一个名为 file.txt 的文本文件,其内容如下:

apple
banana
cat
dog
elephant

要过滤出含有字母 a 的行,可以执行以下命令:

sed '/a/p' file.txt

这个命令会从 file.txt 中过滤出所有含有字母 a 的行,并将它们输出到屏幕上。

输出结果如下:

apple
banana
cat

需要注意的是,p 命令用于打印匹配行,如果不使用 p 命令,则不会输出任何内容,如下所示:

sed '/a/' file.txt

以上命令不会输出任何内容。

如果要删除含有字母 a 的行,则需要使用 d 命令,具体命令如下:

sed '/a/d' file.txt

以上命令会从 file.txt 中删除所有含有字母 a 的行,输出结果如下:

dog
elephant
总结

sed/[匹配规则]/[命令] 命令可以用于过滤匹配行,其中 [匹配规则] 为正则表达式,用于匹配符合条件的行,[命令] 可以在匹配成功的行上执行指定的命令或操作。使用 p 命令打印匹配行,使用 d 命令删除匹配行,可以达到不同的效果。