zoukankan      html  css  js  c++  java
  • sed用法实例 (内容不全)

    sed用法实例
    1.替换命令 s ,不改变原来文件

    sed 's/book/bookall/' mysed

    sed -n 's/book/bookall/' mysed 
    -n 单独使用不会输出任何内容
    sed 's/book/bookall/p' mysed
    p 单独使用,就是默认输出
    sed -n 's/book/bookall/p' mysed
    -n ,p 一起使用,只输出改变的行
    sed -i 's/book/bookall/' mysed
    -i aix  不支持 
    2. g 全面替换标志

    sed 's/book/bookall/g' mysed  
    默认是全面替换
    sed 's/book/bookall/100' mysed  
    从第N处开始替换 ,注意 ,不带g 
    /
    / 在sed 中叫界定符 也可以是其他的 如 : or |
    sed '//youbook/mybook/'  '' 内部出现界定符时候需要转义 
    3. 删除操作 d 命令

    sed '/^$/d' mysed
    删除空白行 
    sed '4d' mysed
    删除文件的第4行
    sed '2,$d' mysed
    删除 2 到行尾的所有行
    sed '$d' mysed
    删除最后一行
    sed '/^book/'d  mysed or sed '/^book/d' mysed
    删除所有book 开头的行
    已匹配字符串标记&

    echo this is my first learning of sed | sed 's/w+/[&]/g'
    正则表达式 w+ 匹配每一个单词,使用【&】替换它,&对应之前匹配到的每一个单词 (AIX 好像不行)
    sed 's/^book/& of mathbook/' mysed
    works
    子串匹配标记 1 

    echo this is digit 7 in a number | sed 's/digit ([0-9])/1/'
     用匹配的子串做替换
    左边命令中digit 7  被替换成了 7 ,样式匹配到的是子串是7,(...)用于匹配子串,对于匹配到的第一个子串标记为 1,依次类推 2
    echo a B | sed 's/([a-z]) ([A-Z])/2 1/'
     a B 位置调换,a B 如果是单词 ?
    sed -n 's/^(book)/1s/p' mysed
    book 在开始位置,被标记为 1
    组合表达式

    sed '表达式1' | sed  '表达式2'  等价于
    sed '表达式1;表达式2'

    test=hello
    echo hello WORLD  | sed "s/$test/HELLO/"
    sed 表达式可以使用单引号做引用,但是如果表达式内部包含变量字符串,就需要使用双引号
    选定行的范围 ,(逗号)

    sed -n '/mybook/,/fine/p' mysed
    所有在模版 mybook 和 check 所确定的范围内的行都被打印
    sed -n '5,/^fine/p' mysed
    打印从第五行开始到第一个包含以fine开始的行之间的所有行
    sed -n '/mybook/,/fine/s/$/aaa ccc/p' mysed
    对于模版 mybook 和 fine之间的行,每行的末尾用字符串aaa ccc替换
    多点编辑 e 命令 

    sed -e '1,5d' -e 's/book/shitbook/' mysed
    -e 选项允许在同一行里执行多条命令,命令的执行顺序对结果有影响
    从文件读入 r 命令 

    sed '/fine/r readfile' mysed
    把从 readfile 里面读取的内容追加到fine 后面的一行
    写入文件 w 命令

    sed -n '/fine/w writefile' mysed
    把从mysed 找到含有 fine 行的数据写入到 writefile 中
    追加(行下) a 命令

    sed '/^fine/a his is my line' mysed
    将 this is my line 追加到fine 开始的行的下面 Not wokrs 
    sed -i '2a his is my food' mysed
    将 this is my line 追加到第二行的下面 Not wokrs 
    插入行上 i 

    sed '/^fine/i his is your prite' mysed
    在以fine 开头的行上插入一行
    sed -i '5i his is your sis' mysed

    下一个命令 n

    sed '/fine/{n;s/jp/bb/;}' mysed
    如果fine 命令匹配,则移动到匹配的下一行,替换(注意,不能有空格)
    变形 y 

    sed '1,10y/igjieo/SDDDD/' mysed
    把 1 到 10 行 中的小写字母替换大写  not works
    推出 q 命令 

    sed '5q' mysed
    输出5行后退出
    脚本 scriptfile

    sed -f scriptfile file(s)
    sed 脚本是一个sed 的命令清单,启动sed 时 以 -f 选项引导脚本文件名。sed 对于脚本中命令非常挑剔,在命令行的末尾不能有空白和文本,如果在一行中多个命令,以分号分割,以#开头的为注释行。
    打印奇数行 偶数行

    sed -n 'p;n' mysed
    sed -n 'n;p' mysed
    sed -n '1~2p' mysed
    sed -n '2~2p' mysed


    有道笔记中副本







  • 相关阅读:
    cmanformat
    mysql-sql语言参考
    jQuery 判断多个 input checkbox 中至少有一个勾选
    Java实现 蓝桥杯 算法提高 计算行列式
    Java实现 蓝桥杯 数独游戏
    Java实现 蓝桥杯 数独游戏
    Java实现 蓝桥杯 数独游戏
    Java实现 蓝桥杯 算法提高 成绩排序2
    Java实现 蓝桥杯 算法提高 成绩排序2
    Java实现 蓝桥杯 算法提高 成绩排序2
  • 原文地址:https://www.cnblogs.com/TendToBigData/p/10501384.html
Copyright © 2011-2022 走看看