• sed用法


        sed是一个非交互性文本流编辑器。它编辑文件或标准输入导出的文本拷贝,标准输入可能是来自键盘、文件重定向、字符串或变量。或者是一个管道文本,sed可以做哪些工作呢?

    sed命令用来编辑

    sed命令用来删除

    sed命令允许工作不在现场,一次性处理所有改变,节省用户时间

    sed在文件中定位文本的方式

    x                                    为一行号,如1

    x,y                                 表示行号范围,如2,5,表示从第二行到第五行

    /pattern/pattern/             查询包含两个模式的行,如/wang/wangs/

    pattern/,x                       在指定行查询匹配模式,如wang/,3

    x,y!                                查询不包含指定行号x和y。1.2!

    基本编辑命令

    p                                   打印匹配行    

    =                                   显示匹配文件行号

    a                                  在定位行号后面附加新文本信息

    i                                   在定位行号后面插入新文本信息

    d                                   删除定位行

    c                                  用新文本替换定位文本

    s                                   使用替换模式替换相应的模式

    r                                   从另一个文件中读文本

    w                                  写文本到一个文件

    q                                  第一个模式匹配完成后推出或立即推出

    l                                   显示与八进制ASCII代码等价的控制符

    {}                                在定位行执行命令组

    n                                  从另一个文件中读文本下一行,并附加在下一行

    g                                  将模式2粘贴到/pattern n/

    y                                  传送字符

    n                                  延续到下一输出行,允许跨行模式的匹配语句

    特殊注意

    sed如果需要定位匹配特殊字符,在字符前面一定要添加字符,屏蔽该特殊字符的特殊含义

    示例:

    显示/etc/passwd文件的第2行

    [root@template ~]# sed -n '2'p /etc/passwd
    bin:x:1:1:bin:/bin:/sbin/nologin

    显示/etc/passwd文件的1到5行

    [root@template ~]# sed -n '1,5'p /etc/passwd
    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

    匹配特定字符zabbix

    [root@template ~]# sed -n '/zabbix/'p /etc/passwd
    zabbix:x:498:498:Zabbix Monitoring System:/var/lib/zabbix:/sbin/nologin

    匹配指定行特定字符zabbix

    [root@template ~]# sed -n '30,/zabbix/'p /etc/passwd
    zabbix:x:498:498:Zabbix Monitoring System:/var/lib/zabbix:/sbin/nologin

    匹配元字符

    [root@template ~]# sed -n '/$/'p quote.txt
    $$dsf

    显示所有文件内容

    [root@template ~]# sed -n '1,$'p quote.txt
    1233
    wqw
    qdfsf
    dfsdf
    sdfg
    dssg
    dgsdx
    sfsdf
    $$dsf
    sdsdf
    ds
    fs
    sdf

    匹配任意字符s使用.*号码匹配,下面示例位匹配包含sdf字符串

    [root@template ~]# sed -n '/.*sdf/'p quote.txt
    dfsdf
    sdfg
    sfsdf
    sdsdf
    sdf

    匹配首行

    sed -n ’1'p /etc/passwd

    匹配末尾号

    sed -n '$'p /etc/passwd

    打印匹配模式行号使用=

    [root@template ~]# sed -e '/sdsdf/=' quote.txt
    1233
    wqw
    qdfsf
    dfsdf
    sdfg
    dssg
    dgsdx
    sfsdf
    $$dsf
    10
    sdsdf
    ds
    fs
    sdf

    只显示匹配模式的行和行号

    [root@template ~]# sed -ne '/sdsdf/'p -e /'sdsdf/=' quote.txt
    sdsdf
    10

    数据的搜寻并替换

    sed 's/要被取代的字串/新的字串/g'

    sed 's/wang/zhou/g'

    删除文本

    sed 'n,m'd test.txt #n,m为数字

    删除具体某一行 sed 'n'd test.txt #n为数字

    模式匹配的行被删除  sed  '/pattern/'d test.txt

    直接修改文件内容

    1、sed -i  's/要被取代的字串/新的字串/g'  test.txt

    2、sed -i  '$a  #you are a handsome boy'  test.txt  #在最后一行插入you are a handsome boy

    3、sed -i  's/$./!/g' test.txt #将最后一行的','替换修改成'!'

     

    坚持,相信有一天,你也能成为别人眼中的大牛! QQ:939598325
  • 相关阅读:
    JVM学习记录-垃圾收集器
    JVM学习记录-垃圾回收算法
    Java设计模式学习记录-策略模式
    【转】Java方向如何准备技术面试答案(汇总版)
    Java设计模式学习记录-代理模式
    JVM之ParNew收集器
    JVM之CMS收集器
    动态代理:cgib、jdk、java javassist
    JVM之Class文件结构
    JAVA之直接内存(DirectMemory)
  • 原文地址:https://www.cnblogs.com/wclwcw/p/6118068.html
Copyright © 2020-2023  润新知