zoukankan      html  css  js  c++  java
  • shell

    时间长不用,总是会忘掉的。。。。。。。。还是烂笔头好些。

    sed 命令使用帮助及实操举例

    功能:主要用来对一个或多个文件进行编辑,简化对文件的反复操作。

    语法: sed [-hnV] [-e<script>][-f<script文件>][文本文件]

    参数:

      -e <script> 根据script指定的脚本来处理输入的文本文件,这个只实现了屏幕打印修改后的效果。并没有实际修改文件

      -f<script文件>:这里是指定执行 script脚本文件

      -h:帮助

      -V:显示版本

    动作说明(这里是主要使用方法):

      a:在指定行号的下方新增一行字符串

      -i:在指定的行号上方新增一行字符串

      -c:取代,可以使用指定的字符串替换n1到n2之间的行

      -s:字符串匹配替换为新的内容,这个可以搭配正则表达式

      -d:删除指定的行

      -p:进行屏幕打印

    实例:

    这里文本文件名称为:passwd,进行举例测试

    内容为:

      root:x:0:0:root:/root:/bin/bash
      bin:x:1:1:bin:/bin:/sbin/nologin
      lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
      sync:x:5:0:sync:/sbin:/bin/sync

    注意:我这里使用,-p 参数进行屏幕打印,如果是要直接修改文件内容,使用 -i 参数,打印文档行号使用: nl

    新增举例:

      在第二行后增加一行,执行:nl passwd | sed -e '2a testcontent'

    1 root:x:0:0:root:/root:/bin/bash
    2 bin:x:1:1:bin:/bin:/sbin/nologin
    testcontent
    3 lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
    4 sync:x:5:0:sync:/sbin:/bin/sync

    删除举例:

      删除第三行,执行:nl passwd | sed -e '3d'

    1 root:x:0:0:root:/root:/bin/bash
    2 bin:x:1:1:bin:/bin:/sbin/nologin
    4 sync:x:5:0:sync:/sbin:/bin/sync

      删除3,4行,执行:nl passwd | sed -e '3,4d'

    1 root:x:0:0:root:/root:/bin/bash
    2 bin:x:1:1:bin:/bin:/sbin/nologin

      删除第3行到最后一行,执行:nl passwd | sed -e '3,$d'

    效果同上

      搜索root并删除此行,执行:nl passwd | sed  '/root/d'

    2 bin:x:1:1:bin:/bin:/sbin/nologin
    3 lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
    4 sync:x:5:0:sync:/sbin:/bin/sync

    插入举例:

      在第二行上方插入一行,执行:nl passwd | sed -e '2i testfile'

    1 root:x:0:0:root:/root:/bin/bash
    testfile
    2 bin:x:1:1:bin:/bin:/sbin/nologin
    3 lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
    4 sync:x:5:0:sync:/sbin:/bin/sync

      在第二行后增加2行,执行:nl passwd | sed -e "2a first line .... second line ...."   注意:这里使用 做了回车

    1 root:x:0:0:root:/root:/bin/bash
    2 bin:x:1:1:bin:/bin:/sbin/nologin
    first line ....
    second line ....
    3 lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
    4 sync:x:5:0:sync:/sbin:/bin/sync

    取代举例

      将第二行取代为新增字符串,执行:nl passwd | sed -e '2c testfile'

    1 root:x:0:0:root:/root:/bin/bash
    testfile
    3 lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
    4 sync:x:5:0:sync:/sbin:/bin/sync

      将第2行到第4行取代为新的字符串,执行:nl passwd | sed -e '2,4c testfile'

    1 root:x:0:0:root:/root:/bin/bash
    testfile

    显示指定行举例

      显示第3行,执行:nl passwd | sed -n '3p'

    3  lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

      显示第3行到第4行,执行:nl passwd | sed -n '3,4p'

    3 lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
    4 sync:x:5:0:sync:/sbin:/bin/sync

      搜索并显示具有root关键字的行,执行:nl passwd | sed -n '/root/p'

    1  root:x:0:0:root:/root:/bin/bash

    替换举例:

      替换所有的nologin为bash,执行:nl passwd | sed 's/nologin/bash/g'  

    1 root:x:0:0:root:/root:/bin/bash
    2 bin:x:1:1:bin:/bin:/sbin/bash
    3 lp:x:4:7:lp:/var/spool/lpd:/sbin/bash
    4 sync:x:5:0:sync:/sbin:/bin/sync

      搜索root行并替换bash为shellbash,执行:nl passwd | sed -n '/root/{s/bash/shellbash/;p;q}'   这里的q为退出

    1  root:x:0:0:root:/root:/bin/shellbash

      替换所有的nologin为bash,执行:nl passwd | sed -e 's/nologin/bash/g'

    1 root:x:0:0:root:/root:/bin/bash
    2 bin:x:1:1:bin:/bin:/sbin/bash
    3 lp:x:4:7:lp:/var/spool/lpd:/sbin/bash
    4 sync:x:5:0:sync:/sbin:/bin/sync

    综合举例1:提取网卡ip

    ifconfig eth2 | grep 'inet addr' | sed  's/^.*addr://'| sed 's/Bcast:.*//'

    输出:192.168.10.150  

    第二种写法:ifconfig eth2 | sed -n '2p' | sed  's/^.*addr://'| sed 's/Bcast:.*//'

    综合举例2:多点编辑

      删除第3行到最后一行,且替换bash为shellbash,执行:nl passwd |sed -e '3,$d' -e 's/bash/shellbash/'

    1 root:x:0:0:root:/root:/bin/shellbash
    2 bin:x:1:1:bin:/bin:/sbin/nologin

  • 相关阅读:
    opengl中对glOrtho()函数的理解
    cocos2D-x demo 的源码分析 #define ..##.. 的妙用.
    js练习图片轮播
    js 表单操作form
    JS DOM
    java Map
    html--form表单
    java反射应用
    JDBC的使用-----Statement
    sql 查询语句的练习2
  • 原文地址:https://www.cnblogs.com/zy6103/p/10480276.html
Copyright © 2011-2022 走看看