📅  最后修改于: 2023-12-03 15:07:49.143000             🧑  作者: Mango
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
命令删除匹配行,可以达到不同的效果。