zoukankan      html  css  js  c++  java
  • sed的应用

    sed的应用

    一、sed命令(流编辑器)

    sed编辑器逐行处理文件(或输入),并将结果发送到屏幕。

    sed  [-n] 'AddressCommand' file ..
    -n  不打印;sed不写编辑行到标准输出,缺省为打印所有行(编辑和未编辑)。p命令可以用来打印编辑行。
    -f  如果正在调用sed脚本文件,使用此选项。此选项通知sed一个脚本文件支持所有的sed命令.
    例如:sed -f myscript.sed input_file,这里myscript . sed即为支持sed命令的文件。 -c 下一命令是编辑命令。使用多项编辑时加入此选项。如果只用到一条sed命令,此选项无用,但指定它也没有关系。 -i 编辑原文件(此选项慎用,如果使用则原文件就会被修改,无法恢复)。
    -r 表示使用扩展正则表达式

    sed由Adress和Command组成

    二、Address(用于指定处理数)

    1、指定行数量

         如:sed -n "1,4p" /etc/passwd   1到4行显示

    2、指定的某一行

          如:

            开头:sed -n  "1" /etc/passwd 

            结尾:sed -n "$p" /etc/passwd

    3、开始行,+N

          显示从开始行,向后的N行

         如:

               sed -n "1,+2p" /etc/passwd  显示第1行的后2行

    4、/模式(正则表达式)/:用来过滤特定的行

       如:sed -n "/^root/p" /etc/passwd

    5、/模式1/,/模式2/

    第一次被模式1匹配到的行开始,到第一次被模式2匹配到的行结束,这中间的所有行。

    如:sed -n "//bin/bash$/p" /etc/passwd

    三、Command

          p:显示符合条件的行;

          d:删除符合条件的行;

          a string :在符合条件的行后面添加;

                  :用于换行

          i  string : 在指定的行前面添加新行,内容为string

          r   FILE   : 将指定的文件的所有内容添加到符合条件行处

          w  FILE   : 将指定范围内的内容另存为至指定的文件中

          s/pattern/string/修饰符:查找并替换,默认只替换每行中第一次被模式匹配到的字符串。如果想替换全部加修饰符:

                                        g:全局替换

                                        i:忽略字符大小写

            如;sed "s///#/g" /etc/fstab 把所有的/替换成#号

           s///:可以不用/来作为分隔,可以是s***,s###

                如:sed "s*/*#*g" /etc/fstab

          例子:如有一文件a内容为: hello  like

                                           haw a you ,love                    

           自身引用(为串加上字符):

                     使用&:引用模式匹配的整个串

                      l..e  :  like --->liker

                                love --->lover

                     语句:sed "s#l..e#&r#g" a

           后项引用(修改串):

                     l..e  :  like -->Like

                               love --> Love

                     语句:sed "s#l(..e)#L1#g" a

  • 相关阅读:
    Easyui datagrid 修改分页组件的分页提示信息为中文
    Easyui datagrid 实现表格记录拖拽
    Java:内部类
    算法导论:Trie字典树
    算法导论:找零钱问题
    lintcode:组成最大的数
    lintcode:验证二叉查找树
    lintcode:将二叉查找树转换成双链表
    lintcode:二叉树的路径和
    lintcode:字符串置换
  • 原文地址:https://www.cnblogs.com/programmer-tlh/p/6069074.html
Copyright © 2011-2022 走看看