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

  • 相关阅读:
    atitit.nfc 身份证 银行卡 芯片卡 解决方案 attilax总结
    atitit.php 流行框架 前三甲为:Laravel、Phalcon、Symfony2 attilax 总结
    Atitit.执行cmd 命令行 php
    Atitit. 图像处理jpg图片的压缩 清理垃圾图片 java版本
    atitit。企业组织与软件工程的策略 战略 趋势 原则 attilax 大总结
    atitit. 管理哲学 大毁灭 如何防止企业的自我毁灭
    Atitit.java的浏览器插件技术 Applet japplet attilax总结
    Atitit.jquery 版本新特性attilax总结
    Atitit. 软件开发中的管理哲学一个伟大的事业必然是过程导向为主 过程导向 vs 结果导向
    (转)获取手机的IMEI号
  • 原文地址:https://www.cnblogs.com/zy6103/p/10480276.html
Copyright © 2011-2022 走看看