带示例的终极Sed教程

Sed是一个流编辑器。Sed用于根据不同的需要转换文本。Sed也有一套脚本语言。Sed脚本可以针对文件运行,如下面的示例所示。 现在我们应该开始一个例子,因为这个教程是这个网站上最长的教程之一。

null

sed命令语法

Sed有以下语法,其中输入文件作为最后一个选项提供。

sed [OPTION]... {script-only-if-no-other-script} [input-file]...

sed命令手册页

有关sed的更多帮助,请访问page man 就像下面一样。

$ man sed
Sed Help
Sed帮助

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

$ sed
Sed Help
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
Print Specified Line Range According Numbers
根据数字打印指定的行范围

替换文本

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

$ sed 's/poftut/POFTUT/g' mytext.txt
Replace Text
替换文本

删除匹配词

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

$ sed 's/poftut//g' mytext.txt
Delete Matched Word
删除匹配词

删除匹配行

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

$ sed  '/poftut/d' mytext.txt
Delete Matched Lines
删除匹配行

每行后面加新行

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

$ sed 'G' mytext.txt
Put New Line After Each Line
每行后面加新行

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

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享