没有合适的资源?快使用搜索试试~ 我知道了~
sed手册完整版
4星 · 超过85%的资源 需积分: 10 5 下载量 68 浏览量
2013-01-08
16:54:56
上传
评论
收藏 392KB PDF 举报
温馨提示
试读
37页
sed标签lable使用范例介绍,平常很少涉及的学到的哟!对于初学者值得多了解,以后能用到!
资源推荐
资源详情
资源评论
1
SED 手册
中央研究院计算中心 ASPAC 计划 ( 刘刚 2008 年 5 月 7 号 整理 ganghust@gmail.com )
aspac@phi.sinica.edu.tw 技术报告 : 96005 1996 年 12 月 1 日 Version:1.0
SED 手册
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1
1.Introduction
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2
1.1 何时使用 sed
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3
1.2 何处获得 sed
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3
1.3 sed 能做那些编辑动作
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3
1.4 sed 如何工作
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3
2 使用 sed
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4
2.1. 执行命令列上的编辑指令
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4
2.2 sed 的编辑指令
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4
2.3 执行档案内的编辑指令
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6
2.4 执行多个文件檔的编辑
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6
2.5. 执行输出的控制
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7
3. 范例
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7
3.1 替换文件中的数据
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7
3.2 搬动文件中的数据
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8
3.3 删除文件中的数据
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9
3.4 搜寻文件中的数据
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9
4 介绍函数参数
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10
4.1 s
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10
4.2 d
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
11
4.3 a
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
11
4.4 i
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
12
4.5 c
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
13
4.6 p
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
13
4.7 l
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
13
4.8 r
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
13
4.9 w
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
14
4.10 y
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
14
4.11 !
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
15
4.12 n
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
15
4.13 q
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
15
4.14 =
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
16
4.15 #
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
16
4.16 N
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
16
2
4.17 D
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
17
4.18
P
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
17
4.19 h
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
18
4.20 H
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
18
4.21 g
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
18
4.22 G
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
18
4.23 x
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
19
4.24 b 、 :label
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
19
4.25 t
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
20
批注
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
22
1.Introduction
1.Introduction
1.Introduction
1.Introduction
Sed
Sed
Sed
Sed
(Stream EDitor) 为 UNIX 系统上提供将编辑工作自动化的编辑器 , 使用者无需直接编辑数据。使用者可利用 sed
sed
sed
sed
所提供 20 多种不同的函数参数 , 组合 ( 批注 [1]) 它们完成不同的编辑动作。 此外 , 由于 sed
sed
sed
sed
都以行为单位编辑文件 ,
故其亦是行编辑器 (line editor) 。
sed 是一个非交互式上下文 (context) 编辑器,它被设计在下列三种情况下发挥作用 :
1) 编辑那些对舒适的交互式编辑而言太大的文件。
2) 在编辑命令太复杂而难于在交互模式下键入的时候编辑任何大小的文件。
3) 要在对输入的一趟扫描中有效的进行多个 ‘ 全局 ’ (global) 编辑函数。
因为每次只把输入的某些行驻留在内存中,并且不使用临时文件,所以可编辑的文件的有效大小,只受限于输入和输 出
要同时共存于次级存储的要求。
可以单独的建立复杂的编辑脚本并作为给 sed 的命令文件。对于复杂的编辑,这节省了可观的键入和随之而来的错误。
从命令文件运行 sed 高效于作者所知道的任何交互式编辑器,甚至包括能用预先写好的脚本驱动的编辑器。
相较于交互式编辑器而言, 根本性的损失是缺乏相对地址 ( 由于操作是每次一行的 ) , 和缺乏对命令如期运行的立即验证
。
sed 是 UNIX 编辑器 ed 的直系后代。由于在交互式和非交互式操作之间的差异,在 ed 和 sed 之间已经有了可观的
变化; 甚至
ed 的惯常用户都会经常感到惊讶 ( 并可能气愤 ) , 如果他们没有阅读本文档的章节 2 和 3
, 就草率的使用
sed
的话。 在两个编辑器之间最显著的家族性共同之处, 在于他们所识别的模式 ( ‘ 正则表达式 ’ ) 的种类; 匹配模式的代码可 以
从 ed 的代码几乎原封不动的复制过来, 在章节 2 中对正则表达式的描述就是从 UNIX Programmer
’
s Manual[1] 几乎 原
封不动的 复制过来的。 ( 代码和描述都是 Dennis M. Ritchie 写的 ) 。
一般 sed
sed
sed
sed
最常用在编辑那些需要不断重复某些编辑动作的档上 , 例如将文件中的某个字符串替换成另一个字符串等
等。这些相较于一般 UNIX 编辑器 ( 交谈式的 , 如 vi 、 emacs) 用手动的方式修改檔 , sed
sed
sed
sed
用起来较省力。下面几节将分
别介绍 :
何时使用 sed
sed
sed
sed
3
何处获得 sed
sed
sed
sed
sed
sed
sed
sed
能做那些编辑动作
sed
sed
sed
sed
如何工作
1.1
1.1
1.1
1.1
何时使用 sed
在修改檔时 , 如果不断地重复某些编辑动作 , 则可用 sed
sed
sed
sed
自动一次执行这些编辑动作。例如要使 received 文件内
1000 封电子信件内的发信人属名 "Tom" 改成 "John" , 此时只要在命令列上执行一简单的 sed
sed
sed
sed
命令就可把檔内所有的
"Tom" 字符串替换成 "John" 。
再者 , 当檔需要许多不同编辑动作时 , 则 sed
sed
sed
sed
一次可执行那些不同的编辑动作。例如 sed
sed
sed
sed
能一次执行完将檔中所有
空白行删除、替换字符串、并将使用者输入的文字添加在文件的第六行等等不同的编辑动作。
1.2
1.2
1.2
1.2
何处获得 sed
一般的 UNIX 系统 , 本身即附有 sed
sed
sed
sed
。不同的 UNIX 系统所附的 sed
sed
sed
sed
版本亦不尽相同。若读者所使用的 UNIX 系
统上未附有 sed
sed
sed
sed
, 则可透过 anonymous ftp 到下列地方去取得 :
phi.sinica.edu.tw:/pub/GNU/gnu
gete.sinica.edu.tw:/unix/gnu
ftp.edu.tw:/UNIX/gnu
ftp.csie.nctu.edu.tw:/pub/Unix/GNU
ftp.fcu.edu.tw: /pub3/UNIX/gnu
axp350.ncu.edu.tw:/Packages/gnu
leica.ccu.edu.tw :/pub2/gnu
mail.ncku.edu.tw :/pub/unix/gnu
bbs.ccit.edu.tw :/pub1/UNIX/gnu
prep.ai.mit.edu.tw:/pub/gnu
1.3
1.3
1.3
1.3
sed 能做那些编辑动作
sed
sed
sed
sed
可删除 (delete) 、改变 (change) 、添加 (append) 、插入 (insert) 、合并、交换文件中的数据行 , 或读入其它文件的数据
到文件中 , 也可替换 (substuite) 它们其中的字符串、 或转换 (tranfer) 其中的字母等等。 例如将檔中的连续空白行删成一行
、
"local" 字符串替换成 "remote" 、 "t" 字母转换成 "T" 、将第 10 行数据与第 11 数据合并等。
1.4
1.4
1.4
1.4
sed 如何工作
如同其它 UNIX 命令 , sed
sed
sed
sed
由标准输入读入编辑文件并由标准输出送出结果。 下图表示 sed
sed
sed
sed
将资料行 "Unix" 替换 成
"UNIX" ,
在图中 , 上方 standard input 为标准输入 , 是读取数据之处 ; standard output 为标准输出 , 是送出结果之处 ; 中间
4
sed
sed
sed
sed
方块的下面两个虚线方块表示 sed
sed
sed
sed
的工作流程。 其中 , 左边虚线方块表示 sed
sed
sed
sed
将标准输入数据置入 pattern space ,
右边虚线方块表示 sed
sed
sed
sed
将 pattern space 中编辑完毕后的数据送到标准输出。
在虚线方块中 , 两个实线方块分别表示 pattern space 与 sed
sed
sed
sed
script
。 其中
, pattern space 为一缓冲区 , 它是 sed
sed
sed
sed
工作 场
所 ; 而 sed
sed
sed
sed
script 则表示一组执行的编辑指令。
在图中 , 左边虚线方块 "Unix" 由标准输入置入 pattern space ; 接着 , 在右边虚线方块中 , sed
sed
sed
sed
执行 sed
sed
sed
sed
script 中的编
辑指令 s/Unix/UNIX/ ( 批注 [2]) , 结果 "Unix" 被替换成 "UNIX" , 之后 , "UNIX" 由 pattern space 送到标准输出。
总合上述所言 , 当 sed
sed
sed
sed
由标准输入读入一行数据并放入 pattern space 时 , sed
sed
sed
sed
依照 sed
sed
sed
sed
script 的编辑指令逐一对
pattern space 内的数据执行编辑 , 之后 , 再由 pattern space 内的结果送到标准输出 , 接着再将下一行数据读入。如此
重复执行上述动作 , 直至读完所有数据行为止。
2
2
2
2
使用
使用
使用
使用
sed
Sed
Sed
Sed
Sed
命令列可分成编辑指令与文件文件部份。其中 , 编辑指令负责控制所有的编辑工作 ; 檔檔表示所处理的档案。
sed
sed
sed
sed
的编辑指令均由位址 (address) 与函数 (function) 两部份组成 , 其中 , 在执行时 , sed
sed
sed
sed
利用它的地址参数来决定编辑
的对象 ; 而用它的函数参数 ( 批注 [3]) 编辑。
此外 , sed
sed
sed
sed
编辑指令 , 除了可在命令列上执行 , 也可在档案内执行。其中差别只是在命令列上执行时 , 其前必须加
上选项 -e ; 而在档案 ( 批注 [4]) 内时 , 则只需在其文件名前加上选项 -f 。另外 , sed
sed
sed
sed
执行编辑指令是依照它们在命令列
上或檔内的次序。
下面各节 , 将介绍执行命令列上的编辑指令 、 sed
sed
sed
sed
编辑指令、执行档案内的编辑指令、执行多个档案的编辑、及执
行 sed
sed
sed
sed
输出控制。
2.1.
2.1.
2.1.
2.1.
执行命令列上的编辑指令
当编辑指令 ( 参照 [section 2.2]) 在命令列上执行时 , 其前必须加上选项 -e 。其命令格式如下 :
sed
sed
sed
sed
-e
'
编辑指令 1' -e
'
编辑指令 2' ... 文件檔
其中 , 所有编辑指令都紧接在选项 -e 之后 , 并置于两个 "
'
" 特殊字符间。另外 , 命令上编辑指令的执行是由左而
右。
一般编辑指令不多时 , 使用者通常直接在命令上执行它们。例如 , 删除 yel.dat 内 1 至 10 行数据 , 并将其余文 字
中的 "yellow" 字符串改成 "black" 字符串。此时 , 可将编辑指令直接在命令上执行 , 其命令如下 :
sed
sed
sed
sed
-e '1,10d' -e 's/yellow/black/g' yel.dat
在命令中 , 编辑指令 '1,10d'( 批注 [5]) 执行删除 1 至 10 行数据 ; 编辑指令 's/yellow/black/g'( 批注 [6]) , "yellow" 字符
串替换 (substuite) 成 "black" 字符串。
2.2
2.2
2.2
2.2
sed 的编辑指令
sed
sed
sed
sed
编辑指令的格式如下 :
[address1[,address2]]function[argument]
其中 , 地址参数 address1
、
address2 为行数或 regular expression 字符串 , 表示所执行编辑的数据行 ; 函数参数 fun ct
5
ion[argument] 为 sed
sed
sed
sed
的内定函数 , 表示执行的编辑动作。
下面两小节 , 将仔细介绍地址参数的表示法与有哪些函数参数供选择。
2.2.1 地址 (address) 参数的表示法
实际上 , 地址参数表示法只是将要编辑的数据行 , 用它们的行数或其中的字符串来代替表示它们。下面举几个例子
说明 ( 指令都以函数参数 d( 参照 [section4.2]) 为例 ) :
删除文件内第 10 行数据 , 则指令为 10d 。
删除含有 "man" 字符串的数据行时 , 则指令为 /man/d 。
删除档内第 10 行到第 200 行数据 , 则指令为 10,200d 。
删除档内第 10 行到含 "man" 字符串的数据行 , 则指令为 10,/man/d 。
接下来 , 以地址参数的内容与其个数两点 , 完整说明指令中位址参数的表示法 ( 同样也以函数参数 d 为例 ) 。
地址参数的内容 :
地址为十进制数 : 此数字表示行数。当指令执行时 , 将对符合此行数的数据执行函数参数指示的编辑动作。例如 , 删
除数据文件中的第 15 行数据 , 则指令为 15d( 参照 [section4.2]) 。其余类推 , 如删除数据文件中的第 m 行数据 , 则指
令为 md 。
地址为 regular expression( 参照 [ 附录 A]):
当数据行中有符合 regular expression 所表示的字符串时 , 则执行函数参数指示的编辑动作。另外 , 在 regular
expression 前后必须加上 "/" 。例如指令为 /t.*t/d , 表示删除所有含两 "t" 字母的数据行。其中 , "." 表示任意字符 ; "*"
表示其前字符可重复任意次 , 它们结合 ".*" 表示两 "t" 字母间的任意字符串。
地址参数的个数 : 在指令中 , 当没有地址参数时 , 表示全部数据行执行函数参数所指示的编辑动作 ; 当只有一地址参
数时 , 表示只有符合地址的数据行才编辑 ; 当有两个地址参数 , 如 address1,address2 时 , 表示对数据区执行编辑 ,
address1 代表起始数据行 , address2 代表结束资料行。对于上述内容 , 以下面例子做具体说明。
例如指令为
d
其表示删除文件内所有数据行。
例如指令为
5d
其表示删除文件内第五行资料。
例如指令为
1,/apple/d
其表示删除资料区 , 由檔内第一行至内有 "apple" 字符串的数据行。
例如指令为
/apple/,/orange/d
其表示删除资料区 , 由檔内含有 "apple" 字符串至含有 "orange" 字符串的数据行
2.2.2 有那些函数 (function) 参数
下页表仲介绍所有 sed
sed
sed
sed
的函数参数 ( 参照 [chapter 4]) 的功能。
函数参数 功能
: label 建立 script file 内指令互相参考的位置。
# 建立批注
{ } 集合有相同位址参数的指令。
! 不执行函数参数。
= 印出资料行数 ( line number ) 。
剩余36页未读,继续阅读
资源评论
- rpisp2013-05-29这是一个总结性的文档,还算OK吧
forestlost
- 粉丝: 0
- 资源: 2
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功