注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

My Unix World

不要迷恋Unix,Unix只是计算世界很小的一部分!

 
 
 

日志

 
 

【转】sed语法小结  

2009-01-09 14:06:12|  分类: utility-regex |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

1、   语法格式7seLinux联盟

sed ‘ 一系列ed命令 文件名7seLinux联盟

7seLinux联盟

2、   一个例子程序7seLinux联盟

sed ‘s/ ^ / -> / ’ $*7seLinux联盟

sed ‘ / . / s/ ^ / -> / ’ $*7seLinux联盟

sed ‘ / ^$ / ! s/ ^ / -> / ’ $*7seLinux联盟

以上三行程序的功能一样,都是在每一行前面加上Tab。但是第一行程序没有排除空行。7seLinux联盟

7seLinux联盟

7seLinux联盟

3、   打印7seLinux联盟

sed 默认会打印匹配的每一行,但是可以使用-n选项将其关闭。在这种情况下,只有用P命令显式说明的行才出现在输出中。如7seLinux联盟

     sed –n ‘ / 模式 /p ’7seLinux联盟

     sed –n ‘ / 模式 /!p ’7seLinux联盟

7seLinux联盟

7seLinux联盟

4、   命令文件7seLinux联盟

还可以将ed命令置于一个文件中,使用-f参数调用文件执行7seLinux联盟

sed –f‘ 命令文件 7seLinux联盟

7seLinux联盟

7seLinux联盟

5sed命令汇总7seLinux联盟

命令7seLinux联盟

含义7seLinux联盟

a \7seLinux联盟

将行添加到输出直到不以\为终结的行7seLinux联盟

b 标号7seLinux联盟

转至命令:标号7seLinux联盟

c \7seLinux联盟

对随后的文本,如同a命令那样逐行修改7seLinux联盟

d7seLinux联盟

删除行,读下一个输入行7seLinux联盟

i \7seLinux联盟

在下一个输出前插入下面的文本7seLinux联盟

l7seLinux联盟

按行列表,使所有非打印字符可见7seLinux联盟

p7seLinux联盟

打印行7seLinux联盟

q7seLinux联盟

退出7seLinux联盟

r 文件7seLinux联盟

读文件,拷贝内容到输出7seLinux联盟

s/old/new/f7seLinux联盟

用新串替代旧串,若f=g,置换所有的变化;f=p,打印;f=w写入文件7seLinux联盟

t 标号7seLinux联盟

测试:若对当前行做了替换,转至标号7seLinux联盟

w 文件7seLinux联盟

将行写到文件7seLinux联盟

y/1/27seLinux联盟

用串2中对应的字符替换串1中的每个字符(不支持范围值)7seLinux联盟

=7seLinux联盟

打印当前输入行号7seLinux联盟

!命令7seLinux联盟

当行未被选取使,执行命令7seLinux联盟

:标号7seLinux联盟

bt 命令设置标号7seLinux联盟

{7seLinux联盟

{}之间的命令视作一组7seLinux联盟

7seLinux联盟

7seLinux联盟

6、多命令行7seLinux联盟

         例子:7seLinux联盟

sed –n ‘ / 模式 / w file1 7seLinux联盟

      / 模式 / w file2 ‘ 文件名7seLinux联盟

7seLinux联盟

7、例子7seLinux联盟

sed ‘ / 模式 / q’ --------------------打印其输入直至包含与模式匹配的第一行;7seLinux联盟

sed ‘/ 模式 / d’ ---------------------删除包含模式的每一行;7seLinux联盟

sed –n ’20,30p’ ----------------------仅打印2030行;7seLinux联盟

sed ‘1,10d ’ ----------------------删除110行(=tail+11);7seLinux联盟

sed ‘1, /^$/d’ -----------------------删除直至包括第一个空行7seLinux联盟

sed –n ‘/^$/, /^end/p’ -------------打印每一个从一空行至一始于end的这样的行组;7seLinux联盟

sed ‘$d’    -----------------------删除最后一行
  评论这张
 
阅读(288)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017