zoukankan      html  css  js  c++  java
  • sed编辑器

    sed
    流编辑器 stream editer,是以行为单位的处理程序

    sed 流编辑器 stream editer

    语法
    sed [options] 'command' in_file[s]
    options 部分
    -n:静默模式,不打印默认输出
    -e:添加多条编辑规则
    -i:将修改后的输出内容保存到文件中
    -f:将编辑规则保存为文件的格式

    -r:使用扩展模式
    command 部分
    '[地址1,地址2] [函数] [参数(标记)]'

    定址的方法 1.数字 2.正则
    数字
    十进制数
    1 单行
    1,3 范围 从第一行到第三行
    2,+4 匹配行后若干行
    4,~3 从第四行到下一个3的倍数行
    2~3 第二行起每间隔三行的行
    $ 尾行
    1! 除了第一行以外的行
    正则
    正则必须用//包裹起来
    扩展正则需要用 -r 参数或转义

    数字定址:sed -n '1p' /etc/passwd

    正则定址:sed -n '/^root/p' /etc/passwd

    函数
    增删改
    a 后插
    c 替换整行
    i 前插
    d 删除
    输入输出
    p 打印匹配的行 一般和 -n 参数连用,以屏蔽默认输出
    r 从文件中读入
    w 写入到文件中
    控制流
    ! 命令取反 例: 1!d 删除第一行以外的行
    {} 命令组合 命令用分号分隔 {1h;G} 可以理解为 -e 参数的另一种写法

    = 打印行号(输入行的号码,而非处理的次数行号) 例如: sed -n '2{=;p}' infile
    n 读入下一行到模式空间 例:'4{n;d}' 删除第5行
    N 而是追加下一行到模式空间,再把当前行和下一行同时应用后面的命令

    s 字符串替换 s/old/new/

    () 保存被匹配的字符 以备反向引用N时使用 最多9个标签 标签顺序从左至右
    & 替换时使用,在不定义标签时使用(反向引用)

    $ sed -n 's/root/ABCDEF/p' /etc/passwd

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

    operator:x:11:0:operator:/ABCDEF:/sbin/nologin

    $ sed -n 's/root/ABCDEF/gp' /etc/passwd

    ABCDEF:x:0:0:ABCDEF:/ABCDEF:/bin/bash

    operator:x:11:0:operator:/ABCDEF:/sbin/nologin

    $ sed -n 's/root/ABCDEF/2p' /etc/passwd #将输入流中每一行的第二个root改为ABCDEF

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

    $ sed -n 's/root/ABCDEF/3p' /etc/passwd #将输入流中每一行的第三个root改为ABCDEF

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

    $ sed -n 's/root/ABCDEF/gp' /etc/passwd #将输入流中每一行的所有root改为ABCDEF

    ABCDEF:x:0:0:ABCDEF:/ABCDEF:/bin/bash

    operator:x:11:0:operator:/ABCDEF:/sbin/nologin

    将每一行中的第一个单词和随后的分隔符交换位置

    [root@myworld ~]# sed -r 's/^([a-Z]+)([^a-Z])/21/' test
    :rootx:0:0:root:/root:/bin/bash
    :binx:1:1:bin:/bin:/sbin/nologin #上肩号在小括号内或者小括号外不影响结果

    将每一行中的最后一个单词和随后的分隔符交换位置

    [root@myworld ~]# sed -r 's/([^a-Z])([a-Z]+)$/21/' test
    root:x:0:0:root:/root:/binbash/
    bin:x:1:1:bin:/bin:/sbinnologin/

  • 相关阅读:
    Delphi XE5 android 蓝牙通讯传输
    Delphi XE5 android toast
    Delphi XE5 android openurl(转)
    Delphi XE5 如何设计并使用FireMonkeyStyle(转)
    Delphi XE5 android 捕获几个事件
    Delphi XE5 android listview
    Delphi XE5 android 黑屏的临时解决办法
    Delphi XE5 android popumenu
    Delphi XE5 android 获取网络状态
    Delphi XE5 android 获取电池电量
  • 原文地址:https://www.cnblogs.com/Icarus1900/p/7688879.html
Copyright © 2011-2022 走看看