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


    有道笔记中副本







  • 相关阅读:
    源码阅读(18):Java中主要的Map结构——HashMap容器(中)
    源码阅读(17):红黑树在Java中的实现和应用
    java中创建文件并写入的方法
    源码阅读(16):Java中主要的Map结构——HashMap容器(上)
    源码阅读(15):Java中主要的Map结构——概述
    从源码分析:Java中的AQS
    源码阅读(14):Java中主要的Queue、Deque结构——PriorityQueue集合(下)
    源码阅读(13):Java中主要的Queue、Deque结构——PriorityQueue集合(中)
    java 归并排序与快速排序
    python中的容器、可迭代对象、迭代器、生成器
  • 原文地址:https://www.cnblogs.com/TendToBigData/p/10501384.html
Copyright © 2011-2022 走看看