您的位置:首页 > 其它

sed命令的用法

2010-10-18 16:37 239 查看
由于最近在学习shell和makefile的用法,所以时不时会上传一些自己的心得和一些总结:

s e d是一个非交互性文本流编辑器。它编辑文件或标准输入导出的文本拷贝。标准输入可能是来自键盘、文件重定向、字符串或变量,或者是一个管道的文本。s e d可以做些什么呢?别忘了,Vi也是一个文本编辑器。s e d可以随意编辑小或大的文件,有许多s e d命令用来编辑、删除,并允许做这项工作时不在现场。s e d一次性处理所有改变,因而变得很有效,对用户来讲,最重要的是节省了时间。

使用s e d命令行格式为:

sed [选项] sed命令 输入文件。##记住在命令行使用sed命令时,实际命令要加单引号

使用s e d脚本文件,格式为:

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

##eg:#!/bin/sed -f

/5/ d/

然后chmod a+x delete.sed ./delete.sed test

使用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 使用替换模式替换相应模式

r 从另一个文件中读文本

w 写文本到一个文件

q 第一个模式匹配完成后推出或立即推出

l 显示与八进制A S C I I代码等价的控制字符

{ } 在定位行执行的命令组

n 从另一个文件中读文本下一行,并附加在下一行

g 将模式2粘贴到/pattern n/

y 传送字符

n 延续到下一输入行;允许跨行的模式匹配语句

p r i n t命令格式为[ a d d r e s s [,a d d r e s s ] P。显示文本行必须提供s e d命令行号

eg: sed -n '2p' test.txt ://-n表示只显示选定的行,不然会全部显示

sed -n '1,3p' test.txt://1,3表示显示1-3行

sed -n '/test/p' test.txt ://test表示匹配带有test的所有行

要打印整个文件,只需将行范围设为第一行到最后一行1 , $。$意为最后一行

eg:sed -n '1,$p' test.txt

还有一些附加,替换,修改文本的操作
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: