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. iOS中精确时间的获取

    下面是一段无法查证出处的英文和自己的翻译 A quick and easy way to measure the performance of a piece of iOS code is to di ...

  2. Virtualenv介绍

    [翻译]http://virtualenv.readthedocs.org/en/latest/index.html virtualenv是创建独立python环境的一种工具. 环境搭建的过程中,有一 ...

  3. php get传递数据

    url:?goods[]=924&goods[]=967&goods[]=993 <?php  if($_GET){            print_r($_GET);  } ...

  4. UVa11210 中国麻将 Chinese Mahjong-搜索

    https://vjudge.net/problem/UVA-11210 //被水题虐了一上午... #include<iostream> #include<cstdio> # ...

  5. Java 获取*.properties配置文件中的内容 ,常见的两种方法

    import java.io.InputStream; import java.util.Enumeration; import java.util.List; import java.util.Pr ...

  6. oracle 将查询到的数据插入表

    1. 新增一个表,通过另一个表的结构和数据 create table tab1 as select * from tab2 2. 如果表存在: insert into tab1 select * fr ...

  7. 关于BitmapFactory解析流的问题a

    今天碰到了一个超级恶心的问题,BitmapFactory.decodeStream(bis,null,options)一直是返回NULL 问题是这样子的: InputStream is= respon ...

  8. SubsetsTotal Accepted:49746Total Submissions:176257My Submissions

    Subsets Total Accepted: 49746 Total Submissions: 176257My Submissions Given a set of distinct intege ...

  9. 显示当前一个礼拜的日期 new Date()

    显示这一礼拜的日期 html: <div class="month"></div> <table> <tr> <th>日 ...

  10. 种树 (codevs 1653) 题解

    [问题描述] 一条街的一边有几座房子.因为环保原因居民想要在路边种些树.路边的地区被分割成块,并被编号为1..n.每个块大小为一个单位尺寸并最多可种一棵树.每个居民想在门前种些树并指定了三个号码b,e ...