- 论坛徽章:
- 0
|
s e d是一个非交互性文本流编辑器。它编辑文件或标准输入导出的文本拷贝。标准输入可
能是来自键盘、文件重定向、字符串或变量,或者是一个管道的文本。s e d可以做些什么呢?
别忘了,Vi也是一个文本编辑器。s e d可以随意编辑小或大的文件,有许多s e d命令用来编辑、
删除,并允许做这项工作时不在现场。s e d一次性处理所有改变,因而变得很有效,对用户来
讲,最重要的是节省了时间。
可以在命令行输入s e d命令,也可以在一个文件中写入命令,然后调用s e d,这与a w k基本
相同。使用s e d需要记住的一个重要事实是,无论命令是什么, s e d并不与初始化文件打交道,
它操作的只是一个拷贝,然后所有的改动如果没有重定向到一个文件,将输出到屏幕。
因为s e d是一个非交互性编辑器,必须通过行号或正则表达式指定要改变的文本行。
sed怎样读取数据
s e d从文件的一个文本行或从标准输入的几种格式中读取数据,将之拷贝到一个编辑缓冲
区,然后读命令行或脚本的第一条命令,并使用这些命令查找模式或定位行号编辑它。重复
此过程直到命令结束。
使用s e d命令行格式为:
sed [选项] s e d命令输入文件。
记住在命令行使用s e d命令时,实际命令要加单引号。s e d也允许加双引号。
使用s e d脚本文件,格式为:
sed [选项] -f sed脚本文件输入文件
要使用第一行具有s e d命令解释器的s e d脚本文件,其格式为:
s e d脚本文件[选项] 输入文件
不管是使用s h e l l命令行方式或脚本文件方式,如果没有指定输入文件, s e d从标准输入中
接受输入,一般是键盘或重定向结果。
s e d选项如下:
n 不打印;s e d不写编辑行到标准输出,缺省为打印所有行(编辑和未编辑)。p命令可以
用来打印编辑行。
c 下一命令是编辑命令。使用多项编辑时加入此选项。如果只用到一条s e d命令,
此选项无用,但指定它也没有关系。
f 如果正在调用s e d脚本文件。
使用s e d在文件中定位文本的方式
x x为一行号,如1
x , y 表示行号范围从x到y,如2,5表示从第2行到第5行
/ p a t t e r n / 查询包含模式的行。例如/ d i s k /或/[a-z]/
/ p a t t e r n / p a t t e r n / 查询包含两个模式的行。例如/ d i s k / d i s k s /
p a t t e r n / , x 在给定行号上查询包含模式的行。如/ r i b b o n / , 3
x , / p a t t e r n / 通过行号和模式查询匹配行。3 . / v d u /
x , y ! 查询不包含指定行号x和y的行。1 , 2 !
基本sed编辑命令
p 打印匹配行
= 显示文件行号
a 在定位行号后附加新文本信息
i 在定位行号后插入新文本信息
d 删除定位行
c 用新文本替换定位文本
s 替换模式
本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/11500/showart_56635.html |
|