📜  sed 行结果范围 - Shell-Bash (1)

📅  最后修改于: 2023-12-03 14:47:21.614000             🧑  作者: Mango

sed命令

标签:Shell-Bash

sed命令是一种流编辑器,它可以对文本文件进行修改和处理。它通常用于处理文本文件中的行,可以删除、替换、插入和追加行,还可以基于正则表达式进行文本替换和过滤。以下是一些常用的sed命令,以及它们的效果和使用方法。

替换文本

sed命令最常用的功能之一是文本替换。可以使用sed命令基于正则表达式来替换文本。使用-e选项指定需要替换的命令,使用s命令来进行替换。

$ echo "hello world" | sed -e 's/world/there/'
hello there

以上命令将输出“hello there”,因为它将“world”替换为“there”。

还可以使用g参数来替换所有的匹配项。

$ echo "foofoofoo" | sed -e 's/foo/bar/g'
barbarbar

以上命令将输出“barbarbar”,因为它将所有的“foo”替换为“bar”。

删除行

删除行是sed很常见的另一种用途。可以使用d命令来删除匹配的行。

$ echo -e "hello\nworld\ngoodbye" | sed -e '/hello/d'
world
goodbye

以上命令将输出“world”和“goodbye”,因为它删除了包含“hello”的行。

插入和追加行

还可以使用sed命令来在文件中插入和追加行。使用i命令可以在匹配的行之前插入一行,使用a命令可以在匹配的行之后追加一行。

$ echo "hello world" | sed -e '/hello/i\goodbye\n'
goodbye
hello world

以上命令将输出“goodbye”和“hello world”,因为它在包含“hello”的行之前插入了一行“goodbye”。

$ echo "hello world" | sed -e '/world/a\nthere'
hello world
there

以上命令将输出“hello world”和“there”,因为它在包含“world”的行之后追加了一行“there”。

过滤行

可以使用正则表达式来过滤文本文件中的行。使用-n选项以及p命令可以打印匹配的行。

$ echo -e "hello\nworld\ngoodbye" | sed -n -e '/oo/p'
hello
goodbye

以上命令将输出包含“oo”的所有行,即“hello”和“goodbye”。

结论

sed命令是一种强大的文本处理工具,可以用于文本替换、行删除、插入和追加行以及行过滤等操作。熟练掌握sed命令可以提高文本处理效率。