Sed教程(三)之Sed语法

sed使用简单,我们可以提供sed命令直接在命令行或具有sed命令的文本文件的形式。本教程讲解调用sed的例子,有这两种方法:

Sed 命令行

以下是我们可以指定单引号在命令行sed命令的格式如下:

sed [-n] [-e] ‘command(s)‘ files

例子

考虑一下我们有一个文本文件books.txt待处理,它有以下内容:

1) A Storm of Swords, George R. R. Martin, 1216
2) The Two Towers, J. R. R. Tolkien, 352
3) The Alchemist, Paulo Coelho, 197
4) The Fellowship of the Ring, J. R. R. Tolkien, 432
5) The Pilgrimage, Paulo Coelho, 288
6) A Game of Thrones, George R. R. Martin, 864

首先,让我们不带任何命令使用sed文件的完整显示内容如下:

[jerry]$ sed ‘‘ books.txt

执行上面的代码,会得到如下结果:

1) A Storm of Swords, George R. R. Martin, 1216
2) The Two Towers, J. R. R. Tolkien, 352
3) The Alchemist, Paulo Coelho, 197
4) The Fellowship of the Ring, J. R. R. Tolkien, 432
5) The Pilgrimage, Paulo Coelho, 288
6) A Game of Thrones, George R. R. Martin, 864

现在,我们从上述文件中显示将看到sed的delete命令删除某些行。让我们删除了第一,第二和第五行。

在这里,要删除给定的三行,我们已经指定了三个单独的命令带有-e选项。

[jerry]$ sed -e ‘1d‘ -e ‘2d‘ -e ‘5d‘ books.txt

执行上面的代码,会得到如下结果:

3) The Alchemist, Paulo Coelho, 197
4) The Fellowship of the Ring, J. R. R. Tolkien, 432
6) A Game of Thrones, George R. R. Martin, 864

sed脚本文件

下面是第二种形式,我们可以提供一个sed脚本文件sed命令:

sed [-n] -f scriptfile files

首先,创建一个包含在一个单独的行的文本commands.txt文件,每次一行为每个sed命令,如下图所示:

1d
2d
5d

现在,我们可以指示sed从文本文件中读取指令和执行操作。这里,我们实现相同的结果,如图在上述的例子。

[jerry]$ sed -f commands.txt books.txt

执行上面的代码,会得到如下结果:

3) The Alchemist, Paulo Coelho, 197
4) The Fellowship of the Ring, J. R. R. Tolkien, 432
6) A Game of Thrones,George R. R. Martin, 864

sed标准选项

sed支持可从命令行提供下列标准选择。

-n 选项

这是模式缓冲区的缺省打印选项。 GNU sed解释器提供--quiet,--silent选项作为 -n选项的替代。

例如,下面 sed 命令不显示任何输出:

[jerry]$ sed -n ‘‘ quote.txt

-e 选项

-e选项的编辑选项。通过使用此选项,可以指定多个命令。例如,下面 sed 命令打印每行两次:

[jerry]$ sed -e ‘‘ -e ‘p‘ quote.txt

执行上面的代码,会得到如下结果:

There is only one thing that makes a dream impossible to achieve: the fear of failure.
There is only one thing that makes a dream impossible to achieve: the fear of failure.
 - Paulo Coelho, The Alchemist
 - Paulo Coelho, The Alchemist

-f 选项

-f选项是用来提供包含sed命令的文件。例如,我们可以按如下方法通过文件指定一个打印命令:

[jerry]$ echo "p" > commands.txt
[jerry]$ sed -n -f commands quote.txt

执行上面的代码,会得到如下结果:

There is only one thing that makes a dream impossible to achieve: the fear of failure.
 - Paulo Coelho, The Alchemist
时间: 2024-11-07 19:16:37

Sed教程(三)之Sed语法的相关文章

sed教程(八)之Sed字符串

本教程将介绍一些字符串处理的重要sed命令.考虑我们有一个文本文件books.txt 要处理,它有以下内容: 1) A Storm of Swords, George R. R. Martin, 1216 2) The Two Towers, J. R. R. Tolkien, 352 3) The Alchemist, Paulo Coelho, 197 4) The Fellowship of the Ring, J. R. R. Tolkien, 432 5) The Pilgrimage

sed教程(六)之基本命令

本教程将介绍一些有用的sed命令和使用示例.考虑一下我们有一个文本文件books.txt待处理,它有以下内容: 1) A Storm of Swords, George R. R. Martin, 1216 2) The Two Towers, J. R. R. Tolkien, 352 3) The Alchemist, Paulo Coelho, 197 4) The Fellowship of the Ring, J. R. R. Tolkien, 432 5) The Pilgrimag

Linux文本三剑客超详细教程---grep、sed、awk

awk.grep.sed是linux操作文本的三大利器,合称文本三剑客,也是必须掌握的linux命令之一.三者的功能都是处理文本,但侧重点各不相同,其中属awk功能最强大,但也最复杂.grep更适合单纯的查找或匹配文本,sed更适合编辑匹配到的文本,awk更适合格式化文本,对文本进行较复杂格式处理. 1.grep 1.1 什么是grep和egrep Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来(匹配到的标红).grep全称是Global

Sed教程(一)之安装配置

介绍如何在GNU/ Linux系统中设置sed环境 安装使用软件包管理器 一般情况下,sed默认提供在大多数的GNU/ Linux发行版.使用该命令,以确定其是否存在于您的系统上.如果没有,那么在基于Debian GNU/ Linux可以使用apt包管理器,如下所示安装sed: [root]# sudo apt-get install sed 安装后,确保sed可以通过命令行访问. [root]# sed --versio 执行上面的代码,会得到如下结果: sed (GNU sed) 4.2.2

Sed&awk笔记之sed篇(转)

Sed是什么 <sed and awk>一书中(1.2 A Stream Editor)是这样解释的: Sed is a "non-interactive" stream-oriented editor. It is stream-oriented because, like many UNIXprograms, input flows through the program and is directed to standard output. Sed本质上是一个编辑器,

Sed&amp;awk笔记之sed篇

http://blog.csdn.net/a81895898/article/details/8482387 Sed是什么 <sed and awk>一书中(1.2 A Stream Editor)是这样解释的: Sed is a "non-interactive" stream-oriented editor. It is stream-oriented because, like many UNIXprograms, input flows through the pr

jQuery 入门教程(三): Selectors

jQuery Selector 是jQuery库中非常重要的一个组成部分. jQuery Selector 用来选择某个HTML元素,其基本语句和CSS的选择器(Selector)是一样的,所有jQuery selector 都是以$()开始. 选择HTML标记 选择某个HTML元素的方法是直接使用该元素的标记名称,比如选择所有<p>元素 $("p") 下面的例子当用户点击一个按钮时,隐藏所有的<p>元素 $(document).ready(function()

css基础系列教程:CSS基础语法1

css基础系列教程:CSS基础语法1 作者:www.divcss8.com 我们学习CSS要明白一个重要的问题,CSS主要是解决与实现表现(CSS)与结构(HTML)的分离.我们编写完HTML之后,如何通过CSS对HTML实现控制呢. 1.  行内样式 2.  内嵌样式 3.  链接样式 4.  导入样式 我们这一节课的示例就先从行内样式开始 行内样式:就是直接在HTML上写样式,就是HTML上加属性style=""这种形式.如 <p style="color:#f00

Laravel教程 三:视图变量传递和Blade

Laravel教程 三:视图变量传递和Blade 此文章为原创文章,未经同意,禁止转载. Blade 上一篇我们简单地说了Router,Views和Controllers的工作流程,这一次我就按照上一篇的计划,来说说下面几个内容: 向视图中传递变量 Blade模板的用法 向视图中传递变量 我们在开发web应用当中,通常都不是为了写静态页面而生的,我们需要跟数据打交道,那么这个时候,问题就来了,在一个MVC的框架中,怎么将数据传给视图呢?比如我们要在 ArticleController 的 ind