• sed 操作命令


    sed介绍

        grep 只能过滤文件内容,sed既能过滤文件内容同时还能对文件内容进行修改.  sed 算是一种编程语言,它有自己的固定语法.

        sed是一种行编辑器,sed会在内存中开辟一块独立的空间(模式空间),每次读取磁盘文件中的一行调入内存空间并且默认自动打印到屏幕

    sed基本语法   

      1. sed  [option]   'script'  file

          script : "地址命令addresscmd"

          cmd: p   d  a  i   c  w r  = 

    sed命令实例

      1.sed -n '/^root/p' /etc/passwd

      2.  sed -n '/^root>/p' /etc/passwd

     

      3.   sed   -n   "1~3p"    f1

      4.   sed   -n   '2!p"        f1

      5.  sed  -r   's/(root)/admin1/g'      /etc/passwd

      6.  sed  -r    's/(.*)/1edu/'              /etc/passwd

      7. sed   -r    's/(.*)/edu1/'              /etc/passwd

      8. sed -r 's*/(bin/bash)$*/s1*'       /etc/passwd

      9.sed -r '/GRUB_CMDLINE_LINUX/s/(.*)"$/1 XYZ"/' /etc/default/grub 或者 sed -r '/GRUB_CMDLINE_LINUX/s/"$/ xyz"/' /etc/default/grub

      10.使用正则表达式表示整行字符同时分割并且取到相应的字符串

          正则表达式  (.*inet)(.*)(netmask.*)表示包含ip地址的整行字符串

           

           把整行字符串分组分割成三个部分.可以取到任意分组中的字符串.

          

    11.删除单行注释符号   找到符号用空来替代

         sed    '/^#NameVirtualHost/s/#//'          /etc/httpd/conf/httpd.conf

    12.删除多行的注释符号

        sed '/^#VirtualHost/,/^</VirtualHost/s/#//' /etc/httpd/conf/httpd.conf

          /^#VirtualHost/         匹配到的开始行

         /^</VirtualHost/        匹配到的结束行

         对开始行和结束行中的所有行进行操作

    13.    echo "/etc/sysconfig/network/" | sed -r 's/(.*/)([^/]+/?)/2/'

             echo "/etc/sysconfig/network/" | sed -r 's/(.*/)([^/]+/?)/1/'

            

    sed的高级语法

       sed 命令包含两个操作空间

          1. 模式空间          默认只能包含一行的文本内容   相当于正在处理数据的空间

          2. 保持空间          相当于一个小仓库,用来存储暂时在模式空间中没有处理完成的数据.

      [root@centos7 boot]# seq 10 | sed -n 'n;p'
       2
       4
       6
       8
       10

       sed '1!G;h;$!d'  file  '1!G;  h;   $!d' 相当于通过;号把这个命令分成了3个脚本.sed读取文件的每一行文本内容依次执行这三个脚本命令.

       sed 'N;D'  file           

       [root@centos7 boot]# seq  5 | tac

        5

        4

        3

        2

        1

    倒序内容命令

        1. ls *.rpm | rev | cut -d -f2 | rev | sort | uniq -c

         tac 把整个文件的行倒叙显示
         rev 按每行字符内容倒叙显示

      [root@centos7 ~]# seq 10 | xargs -n2
      1 2
      3 4
      5 6
      7 8
      9 10

  • 相关阅读:
    TODO 模板实践
    C++类继承方式及实践
    【转】C++友元
    C++面向对象实践
    数组指针实践
    引用&指针交换函数实践
    左值引用&右值引用实践【TODO】
    const变量的修改实践
    【转】c语言动态与静态分配
    【转】数组指针&指针数组
  • 原文地址:https://www.cnblogs.com/yxh168/p/8823959.html
Copyright © 2020-2023  润新知