zoukankan      html  css  js  c++  java
  • Linux centos7 sed工具介绍

    一、sed上

    grep工具功能只能实现查找,不能把查找的内容替换。

    sed本身是一个管道命令,主要是以行为单位进行处理,可以将数据行进行查找、删除、替换字符或字符串、调换字符串位置、直接修改文件内容等特定工作,针对文档的行来操作,例如.txt。

    [root@davery ~]# mkdir sed
    [root@davery ~]# cd sed
    [root@davery sed]# cp ../grep/passwd 0.txt
    [root@davery sed]#
    [root@davery sed]# pwd
    /root/sed
    [root@davery sed]# ls
    0.txt
    [root@davery sed]#

    查找:sed -n '/关键词/'p  文件名 

    [root@davery sed]# sed -n '2'p 0.txt  显示第二行

    [root@davery sed]# sed '15,$'p 0.txt  显示15行到最后一行

    [root@davery sed]# sed -n '1,$'p 0.txt 显示全部

    [root@davery sed]#sed -n '/^1/'p 0.txt  

    [root@davery sed]#sed -n '/in$/'p 0.txt

    [root@davery sed]#sed -n '/r..o/'p 0.txt

    [root@davery sed]#sed -n '/oo*/'p 0.txt

    [root@davery sed]#sed -n '/oo*/'Ip 0.txt   加入大写I,不区分大小写

    删除:sed -n  '关键词'p 文件名   ,仅仅是在屏幕中列出未删除的行,其实原文件并没有被删除。

    [root@davery sed]#sed -n '5'p 0.txt

    [root@davery sed]#sed -n '1,5'p 0.txt

    [root@davery sed]#sed -n '1,$'p 0.txt

    [root@davery sed]#sed -n '/root/'p 0.txt

    [root@davery sed]#sed -n '/^1/'p 0.txt

    [root@davery sed]#sed -n '/in$/'p 0.txt

    [root@davery sed]#sed -n '/r..o/'p 0.txt

    [root@davery sed]#sed -n '/oo*/'p 0.txt

    替换: s表示替换动作,g表示本行全局替换,除了用/作为分割符,也可用特殊字符#、@

    [root@davery sed]# sed '1,2s/ot/to/g' 0.txt  第一二行,ot替换成to

    [root@davery sed]# sed -r '1,2s/ot+/to/g' 0.txt

    [root@davery sed]# sed 's#ot#to#g' 0.txt  

    [root@davery sed]# sed 's@ot@to@g' 0.txt  

    [root@davery sed]# sed 's/[0-9]//g' 0.txt     

    [root@davery sed]# sed 's/[a-zA-Z]//g' 0.txt

    调换两个字符位置

    [root@davery sed]# sed 's/\(root\)\(.*\)\(bash\)/\3\2\1/' 0.txt  

    [root@davery sed]# sed -r 's/(root)(.*)(bash)/\3\2\1/' 0.txt    加入-r表达式更清晰

    bash:x:0:0:root:/root:/bin/root

    [root@davery sed]# sed -r 's/(uaer)(.*)(bash)/\3\2\1/' 0.txt

    bash1:x:1001:1004::/home/uaer1:/bin/uaer

    [root@davery sed]# sed 's/^.*$/123&/' 0.txt      最前边加123    

    123root:x:0:0:root:/root:/bin/bash
    123bin:x:1:1:bin:/bin:/sbin/NOLOGIN

    直接修改文件内容

    [root@davery sed]# sed -i 's/root/toor/g' 0.txt
    [root@davery sed]# cat 0.txt
    toor:x:0:0:toor:/toor:/bin/bash

    例子

    [root@davery sed]# sed '/root/'p 0.txt   会显示所有行
    root:x:0:0:root:/root:/bin/bash
    root:x:0:0:root:/root:/bin/bash
    bin:x:1:1:bin:/bin:/sbin/NOLOGIN
    daemon:x:2:2:daemon:/sbin:/sbin/nologin
    adm:x:3:4:adm:/var/adm:/sbin/nologin
    lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
    sync:x:5:0:sync:/sbin:/bin/sync
    [root@davery sed]# sed -n '/root/'p 0.txt  只把关键词目标行显示出来
    root:x:0:0:root:/root:/bin/bash
    operator:x:11:0:operator:/root:/sbin/nologin

    [root@davery sed]# sed -nr '/root|bus/'p 0.txt   加入r

    root:x:0:0:root:/root:/bin/bash
    operator:x:11:0:operator:/root:/sbin/nologin

    [root@davery sed]# sed -nr '/o+t/'p 0.txt
    root:x:0:0:root:/root:/bin/bash
    operator:x:11:0:operator:/root:/sbin/nologin

    dbus:x:81:81:System message bus:/:/sbin/nologin

    [root@davery sed]# sed -nr '/o{2}/'p 0.txt
    root:x:0:0:root:/root:/bin/bash
    lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
    mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
    operator:x:11:0:operator:/root:/sbin/nologin
    postfix:x:89:89::/var/spool/postfix:/sbin/nologin

  • 相关阅读:
    R语言中的字符串处理函数
    flask模板应用-javaScript和CSS中jinja2 --
    flask模板应用-自定义错误页面 --
    flask模板应用-消息闪现(flash()) --
    flask模板应用-加载静态文件:添加Favicon,使用CSS框架,使用宏加载静态资源 --
    flask模板应用-空白控制 --
    flask模板结构组织(局部模板、宏、模板继承)--
    flask模板的基本用法(定界符、模板语法、渲染模板),模板辅助工具(上下文、全局对象、过滤器、测试器、模板环境对象) --
    CSRF(跨站请求伪造)攻击 --
    XSS攻击原理、示例和防范措施 --
  • 原文地址:https://www.cnblogs.com/davery/p/8729850.html
Copyright © 2011-2022 走看看