码迷,mamicode.com
首页 > 其他好文 > 详细

第4章 sed命令

时间:2016-06-24 23:39:30      阅读:222      评论:0      收藏:0      [点我收藏+]

标签:

1 sed命令基本用法

sed(stream editor)是流编辑器,可对文本文件和标准输入进行编辑;

sed只是对缓冲区中原始文件的副本进行编辑,并不编辑原始的文件,如果需要保存改动内容,可以选择使用下面两种方法:

重定向、w编辑命令。

2 调用sed有三种方法

  • 在Shell命令行输入命令调用sed,格式为:

sed [选项] ‘sed命令’ 输入文件

  • 将sed命令插入脚本文件后,然后通过sed命令调用它,格式为:

sed [选项] -f sed脚本文件输入文件

  • 将sed命令插入脚本文件后,最常用的方法是设置该脚本文件为可执行,然后直接执行该脚本文件,格式为:

./sed脚本文件输入文件

注:第二种方法脚本文件的首行不以#!/bin/sed –f开头;第三种方法脚本文件的首行是#!/bin/sed –f

3 sed命令选项

选项

意义

-n

不打印所有行到标准输出

-e

表示将下一个字符串解析为sed编辑命令,如果只传递一个编辑命令给sed,-e选项可以省略

-f

表示正在调用sed脚本文件

4 sed文本定位

选项

意义

x

x为指定行号

x,y

指定从x到y的行号范围

/pattern/

查询包含模式的行

/pattern/pattern/

查询包含两个模式的行

/pattern/,x

从与pattern的匹配行到x号行之间的行

x,/pattern/

从x号行到与pattern的匹配行之间的行

x,y!

查询不包括x和y行号的行

5 sed编辑命令

选项

意义

p

打印匹配行

=

打印文件行号

a\

在定位行号之后追加文本信息

i\

在定位行号之前插入文本信息

d

删除定位行

c\

用新文本替换定位文本

s

使用替换模式替换相应模式

r

从另一个文件中读文本

w

将文本写入到一个文件

y

变换字符

q

第一个模式匹配完成后退出

l

显示与八进制ASCII代码等价的控制字符

{}

在定位行执行的命令组

n

读取下一个输入行,用下一个命令处理新的行

h

将模式缓冲区文本拷贝到保持缓冲区

H

将模式缓冲区文本追加到保持缓冲区

x

互换模式缓冲区和保持缓冲区内容

g

将保持缓冲区内容拷贝到模式缓冲区

G

将保持缓冲区内容追加到模式缓冲区

6 示例

6.1 选项示例

技术分享

只打印第一行

技术分享

打印包含close关键字的行

调用sed脚本

  • 原始文件

技术分享

  • 脚本内容

技术分享

  • 执行结果

技术分享

6.2 文本定位

sed -n ‘$p‘ input #匹配最后一行
sed -n ‘/close/,$p‘ input #打印与close匹配到最后一行

 

第4章 sed命令

标签:

原文地址:http://www.cnblogs.com/boyiliushui/p/5615456.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!