美文网首页
Day18操作系统三剑客命令-sed

Day18操作系统三剑客命令-sed

作者: a幕城 | 来源:发表于2019-11-05 15:10 被阅读0次
    三剑客sed命令概念介绍 
        作用说明: ` stream editor for filtering and transforming text`
                   文件处理编辑命令
        原理过程:  按照文件每行信息进行处理, 找出符合条件信息, 执行相应操作
        语法结构: ` sed [参数] '条件 指令操作'  文件信息`
    
    
    三剑客sed命令使用方法
       ` 准备环境:
    cat >person.txt<<EOF
    101,oldboy,CEO
    102,zhaoyao,CTO
    103,Alex,COO
    104,yy,CFO
    105,feixue,CIO
    EOF
      1) 如何进行查询
           a 按照行号查询信息
             查找单行信息:  sed -n '3p'   文件信息 
             查找多行信息:  sed -n '2,4p' 文件信息   连续多行   sed -n '2p;4p' person.txt  不连续多行
                            sed -n '2,$p' 文件信息
           
           b 按照字符查询信息
             查找单行信息:  sed -n '/CTO/p' person.txt 
             查看多行信息:  sed -n '/CTO/,/CIO/p' person.txt                              sed -n '/CTO/p;/CIO/p' person.txt
            [root@linux67 oldboy]# cat person.txt 
            101,oldboy,CEO
            102,zhaoyao,CTO
            103,Alex,COO
            104,yy,CFO
            105,feixue,CIO
            102,zhaoyao,CTO
            103,Alex,COO
            104,yy,CFO
            [root@linux67 oldboy]# sed -n '/CTO/,/CIO/p' person.txt 
             102,zhaoyao,CTO
             103,Alex,COO
             104,yy,CFO
             105,feixue,CIO
             102,zhaoyao,CTO
             103,Alex,COO
             104,yy,CFO
             2)如何进行删除
             ed -i '6d' person.txt  
           sed -i.bak '/COO/d' person.txt       --- 将源文件内容先进行备份, 在进行操作
           sed -ri '/CFO|CTO/d' person.txt
           
           坑: 删除一个文件有#号的行
               1) 查询需要删除内容
                  sed -n '/^#/p' config
               2) 删除文件信息
                  sed -i '/^#/p' config
           PS: 
           1. -i参数后面不能再跟上其他参数
           2. -i参数和-n参数尽量不要结合使用
           -i : 真正修改文件内容
    3) 如何进行添加
           3a: 在第三行的下面添加相应信息
           3i: 在第三行的上面添加相应信息
        
           [root@linux67 oldboy]# cat person.txt
           101,oldboy,CEO
           105,feixue,CIO
           [root@linux67 oldboy]# sed -i '1a102,zhaoyao,CTO' person.txt
           [root@linux67 oldboy]# cat person.txt
           101,oldboy,CEO
           102,zhaoyao,CTO
           105,feixue,CIO
           
        4) 如何进行修改
           sed 参数 's#需要替换信息#替换成什么信息#g'  文件信息 
           
           sed  '$s#CEO#CIO#g' person.txt                 --- 指定条件进行替换
           sed -i "s#$Init_IP#$Change_IP#g" $File_info    --- 指定变量信息做替换需要注意双引号使用`
    

    相关文章

      网友评论

          本文标题:Day18操作系统三剑客命令-sed

          本文链接:https://www.haomeiwen.com/subject/cjzsbctx.html