1、背景:

test.txt文件里有这些语句

li^E1026^D20150802B07QH800^B698.^C20150801B08CDP00^B514.^C20150803D00A8L00^B216.
yitianke'blog

要找出以li^E开头的行,并将li^E这个头去掉,同时^D替换成逗号,^B^C替换成#并写入到新文件里

2、方法

用sed解决用两种写法,一个是

sed -n -e 's/^li^E//' -e 's/^D/,/' -e 's/^B/#/g' -e 's/^C/#/gp' "test.txt" >"my_test.txt"

-n代表是安静模式,只有经过sed 特殊处理的那一行(或者动作)才会被列出来;

-e代表是允许后面有多个命令;

s表示是替换模式,最后的p表示把替换后的语句打印出来。

注意:p只能在在最后出现,如果写成下面的格式

sed -n -e 's/^li^E//p' -e 's/^D/,/p' -e 's/^B/#/gp' -e 's/^C/#/gp' "kuaibao_test.txt" >"my_kuaibao.txt"

则会打印出四行,每个-e后面的替换结果都会打印出来,后面的替换会在前面替换的基础上继续替换

第二种写法比较简单:

sed -n '/^li^E/{s/li^E//;s/^D/,/;s/^B/#/g;s/^C/#/g;p}'  "test.txt" >"my_test.txt

找到匹配模式^li^E的行后,执行后面花括号中的一组命令,每个命令之间用逗号分隔

s/^B/#/g完成一行中所有^B到#的替换,p和-n选项的合用,则只是打印作用到的行

参考链接:http://www.cnblogs.com/mchina/archive/2012/06/30/2570523.html

sed实例一则的更多相关文章

  1. sed实例精解--例说sed完整版

    原文地址:sed实例精解--例说sed完整版 作者:xiaozhenggang 最近在学习shell,怕学了后面忘了前面的就把学习和实验的过程记录下来了.这里是关于sed的,前面有三四篇分开的,现在都 ...

  2. sed实例收集

    url:http://blog.csdn.net/hepeng597/article/details/7852468 一.元字符集    1)^锚定行的开始 如:/^sed/匹配所有以sed开头的行. ...

  3. sed实例

    删除:d命令 $ sed '2d' example-----删除example文件的第二行. $ sed '2,$d' example-----删除example文件的第二行到末尾所有行. $ sed ...

  4. 复习sed实例操作

    第6周复习课(5月2日) 课程内容: 复习 扩展1.打印某行到某行之间的内容http://ask.apelearn.com/question/5592.sed转换大小写 http://ask.apel ...

  5. sed 技巧

    八.流编辑器sed sed ':a;N;$!ba;s/0.01/0.0001/g' file:a 创建一个labelaN 将下一行读入到模式空间$! 如果不是最后一行,ba跳转到label a处s/0 ...

  6. sed正则表达式

    sed的正则匹配如何实现非贪婪? sed的正则用的是BREs/EREs,不支持非贪婪模式.当然有一些方法可以实现非贪婪,比如: $ echo abcOabcdOabc | sed 's/.*O//' ...

  7. 【转】sed正则表达式

    1 正则表达式简介 正则表达式(Regular Expression) 是一种描述文本(或字符串)模式的工具.正则表达式常用于查找文本的场合.想想一下我们日常生活中的例子,假如你想从电话本里找一个联系 ...

  8. sed运用

    流编辑器sed sed简介 sed是stream editor的缩写,一种流编辑器,它一次处理一行内容.处理时,把当前处理的行存储在临时缓冲区中,称为"模式空间"(pattern ...

  9. 获取文本中你须要的字段的 几个命令 grep awk cut tr sed

    1,grep 2,awk 3,cut 4,tr 5,sed 实例1 获取本地IP地址 /sbin/ifconfig -a|grep inet|grep -v 127.0.0.1|grep -v ine ...

随机推荐

  1. 【测试】自行建表并演示append+nologging,并描述数据写入后产生的效果

    ①创建表: SQL> create table t4 as select * from all_objects; Table created. ②设置t4处于nologging: SQL> ...

  2. Do less things

    就这样,选择做更少的事情,我觉得挺好,至少能睡得很踏实,吃饭很香,也不会觉得难受! 就这样,节制自己的欲望,但是却能很平静,安安静静走自己的路,我觉得生活有希望,也有快乐! 早上,已经可以八点十分起床 ...

  3. MySql 日期函数

    在 MySql 中经常会用到日期,关于常用的日期函数,做了以下的总结: 1 . now() 作用; 获取当前的日期 除此之外,获取当前日期的函数还有: current_timestamp(); cur ...

  4. HTML DOM(学习笔记二)

    嗯,在HTML DOM(学习笔记一)中简单描述了一下HTML DOM 是什么,这一篇将记录下来有关HTML DOM的内容! 1:DOM节点 首先,再来看一下HTML DOM的树状结构,如下图所示: 这 ...

  5. win8下安装ubuntu双系统

    终于成功在win8下安装成功ubuntu13.10, 安装方法来源于http://forum.ubuntu.org.cn/viewtopic.php?t=446557 下面的文件是该楼主的将安装ubu ...

  6. leetcode007. Reverse Integer

    /* a good way to predict overflow * each time *10 must predict int overflow * not only the last time ...

  7. PAT1013. Battle Over Cities(邻接矩阵、邻接表分别dfs)

    //采用不同的图存储结构结构邻接矩阵.邻接表分别dfs,我想我是寂寞了吧,应该试试并查集,看见可以用并查集的就用dfs,bfs代替......怕了并查集了 //邻接矩阵dfs #include< ...

  8. 011OK6410开发板介绍

    1.系统资源: (1)处理器:三星ARM11,S3C6410A,主频533MHz/667MHz (2)nor flash (3)nand flash:1G字节NAND Flash (4)RAM:128 ...

  9. systemctl

      旧指令 新指令 使某服务自动启动 chkconfig --level 3 httpd on systemctl enable httpd.service 使某服务不自动启动 chkconfig - ...

  10. Ninject在mvc中的简单配置

    前言 Ninject是一款开源的轻量级的依赖注入插件.从接触ioc以来,一直都是使用这个,感觉用起来还是不错的,配置起来也很方便简单.在mvc中更是基本傻瓜式的配置. 开发前的准备 新建一个mvc3项 ...