zoukankan      html  css  js  c++  java
  • sed实例一则

    1、背景:

    test.txt文件里有这些语句

    li^E1026^D20150802B07QH800^B698.0^C20150801B08CDP00^B514.63^C20150803D00A8L00^B216.97
    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

  • 相关阅读:
    用react的ReactCSSTransitionGroup插件实现简单的弹幕动画
    composer安装yii2问题总结
    记阿里笔试经历
    JVM, JRE,JDK 的区别
    HTML
    Http协议
    操作系统和网络基础知识
    网络基础之网络协议
    计算机硬件知识
    计算机硬件历史
  • 原文地址:https://www.cnblogs.com/yitianke/p/4702457.html
Copyright © 2011-2022 走看看