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

    用法:

        sed  [选项]... 'script' inputfile                    

    其中script是脚本基于sed语法的脚本                 inputfile文件内容 

         常用选项

            -n   :不输出模式空间内容到屏幕,即不自动打印

            -e   :多点编辑

            -f    :   /PATH/SCRIPT_FILE:从指定文件中读取编辑脚本

            -r    :支持扩展正则表达式

            -i .bak :备份文件并原处编辑

       把原文件做一个带.bak的备份文件        然后就不怕对原文件修改出错了

    script   :  脚本包括两部分    1 地址     2 命令

             ‘地址命令’

          地址定界

          1不给地址 :  对全文处理

          2单地址

                      #:指定的行,   第#行      $:最后一行

                      /pattern/: 被此处模式所匹配的行          模式就是关键字 词 等

    默认sed使用基本正则     /基本正则/            

          3地址范围:

                #,#              从第#行 到 第#行

                #, +#            从第n行 到 第n+m行

                /pat1/,/pat2/            从匹配模式1的行  到  匹配模式2的行

               #,/pat1/           从第#行   到   匹配模式1 的行结束

           4~ :步进

                        1~2   奇数行

                        2~2    偶数行

       编辑命令

                d:删除模式空间匹配的行,并立即启用下一轮循环

                p :打印当前模式空间的内容,追加到默认输出之后   

          #sed    ‘2p’        文件                  会打印两遍第二行     如果只想打印第二行可以

         #sed    -n    ’2p‘    文件

                a []text :在指定行后面追加文本

                                           支持使用 实现多行追加

                i []text : 在行前面插入文本

    #sed    '2,5i      ==='    f1

               c [] texr: 替换行为单行或多行文本

                w  /path/somefile :保存模式匹配的行至指定文件 

     把符合条件的行存到文件里

                r /path/somefile  :读取指定文件的文本至模式空间中匹配到的行后

                =:为模式空间中的行打印行号   只显示行号

                !:模式空间中匹配 行取反处理

       示例      

       sed    '2p'  /etc/passwd         显示第二行   但是会默认全打印所以有两个第二行

       sed    -n   '2p'  /etc/passwd     与上一条相反   只显示第二行

       sed    -n   '1,4p'  /etc/passwd         只打印第一行到第四行

       sed    -n   '/root/p'  /etc/passwd       打印包含root的行

       sed    -n   '2,/root/p'  /etc/passwd   从2行开始  到含有root的行

       sed    -n   '/^$/='  file     显示空行行号

       sed  -n    -e    '/^$/p'   -e  '/^$/='      file      空行显示行号并把行也打印出来

       sed     '/root/asuperman'     /etc/passwd     行后     在包含root的行后 打印字符串superman

       sed     '/root/isuperman'     /etc/passwd      行前                          行前     

       sed     '/root/csuperman'     /etc/passwd  代替行              

       sed     '/^$/d'       file          删除空行

        sed   '1,10d'       file         删除1到10行

        nl   /etc/passwd  |sed   '2,5d'         删除第2行到第5行

        nl    /etc/passwd  | sed  '2a  tea'          在第2行后面追加单词   tea  或字符   tea

         sed   's/test/mytest/g'   example            搜索  test          替代  mytest

         sed    -n   's/root/&superman/p'   /etc/passwd  单词后     搜索 root  替代rootsuperman        &相当于 表示前面的root     

        sed     -n    's/root/superman&/p'  /etc/passwd  单词前        

        sed     -e    's/dog/cat/'         -e      's/hi/lo/'      pets         多点替换  

         sed      -i.bak     's/dog/cat/g'        pets           把文件改了 

  • 相关阅读:
    Web标准:五、超链接伪类
    Spring Security(16)——基于表达式的权限控制
    Spring Security(15)——权限鉴定结构
    Spring Security(14)——权限鉴定基础
    Spring Security(13)——session管理
    Spring Security(12)——Remember-Me功能
    Spring Security(11)——匿名认证
    Spring Security(10)——退出登录logout
    Spring Security(09)——Filter
    Spring Security(08)——intercept-url配置
  • 原文地址:https://www.cnblogs.com/liang-1/p/8810477.html
Copyright © 2011-2022 走看看