没有合适的资源?快使用搜索试试~ 我知道了~
sed使用手册分享.pdf
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 161 浏览量
2021-12-17
13:45:32
上传
评论
收藏 26KB PDF 举报
温馨提示
试读
11页
sed使用手册分享.pdf
资源推荐
资源详情
资源评论
sed 手册
sed 手册
2005-10-29 10:54 am
作者: aspac
来自: linux 宝库 (http://www.linuxmine.com)
联系: aspac@phi.sinica.edu.tw
SED 手册 - 1. Introduction
1. Introduction
Sed(Stream EDitor) 为 UNIX 系统上提供将编辑工作自动化的编辑器 , 使用者无需直接编
辑资料。使用者可利用 sed 所提供 20 多种不同的函数参数 , 组合 (解 [1]) 它们完成不同的
编辑动作。此外 , 由於 sed 都以行为单位编辑文件 , 故其亦是行编辑器 (line editor) 。一般
sed 最常用在编辑那些需要不断重覆某些编辑动作的文件上 , 例如将文件中的某个字串替
换成另一个字串等等。这些相较於一般 UNIX 编辑器 (交谈式的 , 如 vi 、emacs)用手动的方
式修改文件 , sed 用起来较省力。
1.1 何时使用 sed
在修改文件时 , 如果不断地重覆某些编辑动作 , 则可用 sed 自动一次执行这些编辑动作。
例如要使 received 档内 1000 封电子信件内的发信人属名 "Tom" 改成 "John" , 此时只要
在命令列上执行一简单的 sed 命令就可把档内所有的 "Tom" 字串替换成 "John" 。再者 ,
当文件需要许多不同编辑动作时 , 则 sed 一次可执行那些不同的编辑动作。 例如 sed 能一
次执行完将文件中所有空白行删除、 替换字串、 并将使用者输入的文字添加在文件的第六行
等等不同的编辑动作。
1.2 何处获得 sed
一般的 UNIX 系统 , 本身即附有 sed。不同的 UNIX 系统所附的 sed 版本亦不尽相同。
若读者所使用的 UNIX 系统上未附有 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 sed 能做那些编辑动作
sed 可删除 (delete)、改变 (change)、添加 (append)、插入 (insert)、合、交换文件中的资料行 ,
或读入其它档的资料到文件中 , 也可替换 (substuite)它们其中的字串、 或转换 (tranfer) 其中的
字母等等。 例如将文件中的连续空白行删成一行、 "local" 字串替换成 "remote" 、"t" 字母
转换成 "T" 、将第 10 行资料与第 11 资料合等。
1.4 sed 如何工作
如同其它 UNIX 命令 , sed 由标准输入读入编辑文件并由标准输出送出结果。 sed 由标准
输入读入一行资料并放入缓冲区 ,依照 sed script 的编辑指令逐一对缓冲区内的资料执行编
辑 , 之後 , 再将结果送到标准输出 , 接着再将下一行资料读入。 如此重执行上述动作 , 直
至读完所有资料行为止。
SED 手册 - 2. 使用 sed
Sed 命令列可分成编辑指令与文件档部份。其中 , 编辑指令负责控制所有的编辑工作 ; 文
件档表示所处理的档案。 sed 的编辑指令均由位址 (address)与函数 (function) 两部份组成 , 其
中 , 在执行时 , sed 利用它的位址参数来决定编辑的对象 ;而用它的函数参数编辑。此外 ,
sed 编辑指令 , 除了可在命令列上执行 , 也可在档案内执行。其中差别只是在命令列上执
行时 , 其前必须加上选项 -e ; 而在文档案内时 , 则只需在其档名前加上选项 -f。另外 ,
sed 执行编辑指令是依照它们在命令列上或档内的次序。
2.1.执行命令列上的编辑指令
当编辑指令在命令列上执行时 , 其前必须加上选项 -e 。其命令格式如下 :
sed -e '编辑指令 1' -e '编辑指令 2' ... 文件档
其中 , 所有编辑指令都紧接在选项 -e 之後 , 并置於两个 " ' " 特殊字元间。 另外 , 命令上
编辑指令的执行是由左而右。
一般编辑指令不多时 ,使用者通常直接在命令上执行它们。例如 , 删除 yel.dat 内 1 至 10
行资料 , 并将其馀文字中的 "yellow" 字串改成 "black" 字串。此时 , 可将编辑指令直接在
命令上执行 , 其命令如下 :
sed -e '1,10d' -e 's/yellow/black/g' yel.dat
在命令中 , 编辑指令 '1,10d'(解[5]) 执行删除 1 至 10 行资料 ;编辑指令 's/yellow/black/g' ,将
"yellow" 字串替换 (substuite)成 "black" 字串。
2.2 sed 的编辑指令
sed 编辑指令的格式如下 :
[address1[,address2]]function[argument]
其中 , 位址参数 address1 、address2 为行数或 regular expression 字串 , 表示所执行编辑
的资料行 ; 函数参数 function[argument] 为 sed 的内定函数 , 表示执行的编辑动作。
下面两小节 , 将仔细介绍位址参数的表示法与有哪些函数参数供选择。
2.2.1 位址 (address)参数的表示法
实际上 , 位址参数表示法只是将要编辑的资料行 , 用它们的行数或其中的字串来代替表示
它们。下面举几个例子
说明 (指令都以函数参数 d 为例 ) :
删除档内第 10 行资料 , 则指令为 10d。
删除含有 "man" 字串的资料行时 , 则指令为 /man/d。
删除档内第 10 行到第 200 行资料 , 则指令为 10,200d。
删除档内第 10 行到含 "man" 字串的资料行 , 则指令为 10,/man/d 。
位址参数的内容 :
位址为十进位数字 : 此数字表示行数。当指令执行时 , 将对符合此行数的资料执行函数参
数指示的编辑动作。例如 ,删除资料档中的第 15 行资料 , 则指令为 15d。其馀类推 ,如删
除资料档中的第 m 行资料 , 则指令为 md 。
位址为 regular expression(参照 [ 附录 A]):
当资料行中有符合 regular expression 所表示的字串时 , 则执行函数参数指示的编辑动作。
另外 , 在 regular expression 前後必须加上 "/" 。例如指令为 /t.*t/d , 表示删除所有含两 "t"
字母的资料行。其中 "."表示任意字元 ; "*" 表示其前字元可重任意次。
位址参数的个数 : 在指令中 ,当没有位址参数时 ,表示全部资料行执行函数参数所指示的编
辑动作 ; 当只有一位址参数时 ,表示只有符合位址的资料行才编辑 ;当有两个位址参数 ,如
address1,address2 时,表示对资料区执行编辑 ,address1 代表起始资料行 ,address2 代表结束资
料行。对於上述内容 , 以下面例子做具说明。
例如指令为
d 其表示删除档内所有资料行。
例如指令为
5d 其表示删除档内第五行资料。
例如指令为
1,/apple/d 其表示删除资料区 , 由档内第一行至内有 "apple" 字串的资料行。
例如指令为
/apple/,/orange/d 其表示删除资料区 , 由档内含有 "apple" 字串至含有 "orange" 字串的资
料行
2.2.2 有那些函数 (function) 参数
下页表中介绍所有 sed 的函数参数 (参照 [chapter 4]) 的功能。
函数参数 功能
: label 建立 script file 内指令互相参考的位置。
# 建立解
剩余10页未读,继续阅读
资源评论
hwx18537729388
- 粉丝: 1
- 资源: 9万+
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功