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
还有一些附加,替换,修改文本的操作
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
还有一些附加,替换,修改文本的操作