Sed是一个流编辑器。Sed用于根据不同的需要转换文本。Sed也有一套脚本语言。Sed脚本可以针对文件运行,如下面的示例所示。 现在我们应该开始一个例子,因为这个教程是这个网站上最长的教程之一。
sed命令语法
Sed有以下语法,其中输入文件作为最后一个选项提供。
sed [OPTION]... {script-only-if-no-other-script} [input-file]...
sed命令手册页
有关sed的更多帮助,请访问page man
就像下面一样。
$ man sed

或者只是发出命令 sed
在bash中不带参数将打印主要帮助信息。
$ sed

示例文本
在教程中 sed
,我们需要一个示例文本文件,在该文本文件中使用命令和选项。我们把这个文本文件命名为 mytext.txt
在下面。
1. poftut.com 2. ismailbaydan.com3. default-password.netThis is another line of text
打印匹配行
我们要打印与给定字符串匹配的行。在本例中,我们将使用 poftut
使用命令 p
.
$ sed -n '/poftut/p' mytext.txt
打印指定行号
Sed支持只根据给定行的编号打印它们。我们将用命令打印第3行 p
在这个例子中。
$ sed -n '3p' mytext.txt
根据数字打印指定的行范围
在前面的示例中,我们只打印了一行。我们还可以通过提供行的开始和结束编号来打印多行。在本例中,我们将打印 2
和 4
.
$ sed -n '2,4p' mytext.txt

替换文本
最常用的功能之一 sed
正在替换文本。我们将使用 s/foo/bar/g
命令。 s/
用于搜索 foo/
和 g
用于替换 /var
与搜索匹配。或者这将取代 foo
具有 bar
. 在本例中,我们将替换 poftut
具有 POFTUT
$ sed 's/poftut/POFTUT/g' mytext.txt

删除匹配词
在课文中,我们可以删除匹配的单词。这类似于替换,我们不提供替换词。在这个例子中,我们将删除这个词 poftut
.
$ sed 's/poftut//g' mytext.txt

删除匹配行
与上一个示例类似,我们可以将单词匹配的行作为一个整体删除。在本例中,我们将删除那些包含 poftut
与 d
操作
$ sed '/poftut/d' mytext.txt

每行后面加新行
我们可能需要在文件末尾的每一行后面创建一个新行。我们可以用 G
为了这次行动。
$ sed 'G' mytext.txt

相关文章: 如何使用Sed查找和替换文件或标准输入中的文本