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

  • 相关阅读:
    ubuntu下在apache部署python站点
    MySQL设置从库只读模式
    mysql数据库,创建只读用户
    BUG处理流程说明
    bug的处理流程
    nginx 502 Bad Gateway 错误解决办法
    Linux下批量替换文件内容方法
    centos 安装pecl
    php学习资源
    Docker容器进入的4种方式(转)
  • 原文地址:https://www.cnblogs.com/yitianke/p/4702457.html
Copyright © 2011-2022 走看看