• sed 用法


    sed 用法

    sed的其他用法如下:
    
    1、删除行首空格
       sed 's/^[ ]*//g' filename
       sed 's/^ *//g' filename
       sed 's/^[[:space:]]*//g' filename
    
    2、行后和行前添加新行
       行后:sed 's/pattern/&
    /g' filename
       行前:sed 's/pattern/
    &/g' filename
       &代表pattern
    
    3、使用变量替换(使用双引号)
        sed -e "s/$var1/$var2/g" filename
    
    4、在第一行前插入文本
        sed -i '1 i插入字符串' filename
    
    5、在最后一行插入
        sed -i '$ a插入字符串' filename
    
    6、在匹配行前插入
        sed -i '/pattern/ i "插入字符串"' filename
    
    7、在匹配行后插入
       sed -i '/pattern/ a "插入字符串"' filename
    
    8、删除文本中空行和空格组成的行以及#号注释的行
       grep -v ^# filename | sed /^[[:space:]]*$/d | sed /^$/d
    # 删除 第 2~5 行
    cat /etc/passwd | sed '2,5d'
    
    # 删除第 3 到最后一行
    cat /etc/passwd | sed '3,$d' 
    
    # 在第二行后(亦即是加在第三行)加上『drink tea』
    cat /etc/passwd | sed '2a drink tea'
    # 第二行前加上『drink tea』
    cat /etc/passwd | sed '2i drink tea' 
    
    # 将第2-5行的内容取代成为『No 2-5 number』
    cat /etc/passwd | sed '2,5c No 2-5 number'
    
    # 仅列出 /etc/passwd 文件内的第 5-7 行
    cat /etc/passwd | sed -n '5,7p'

    高级用法

    [root@www ~]# /sbin/ifconfig eth0
    eth0 Link encap:Ethernet HWaddr 00:90:CC:A6:34:84
    inet addr:192.168.1.100 Bcast:192.168.1.255 Mask:255.255.255.0
    inet6 addr: fe80::290:ccff:fea6:3484/64 Scope:Link
    UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
    .....(以下省略).....

    将 IP 前面的部分予以删除

    [root@www ~]# /sbin/ifconfig eth0 | grep 'inet addr' | sed 's/^.*addr://g'
    192.168.1.100 Bcast:192.168.1.255 Mask:255.255.255.0

    接下来则是删除后续的部分,亦即: 192.168.1.100 Bcast:192.168.1.255 Mask:255.255.255.0

    将 IP 后面的部分予以删除

    [root@www ~]# /sbin/ifconfig eth0 | grep 'inet addr' | sed 's/^.*addr://g' | sed 's/Bcast.*$//g'
    192.168.1.100

    直接修改文件内容(危险动作)

    # 利用 sed 将 regular_express.txt 内每一行结尾若为 . 则换成 ! 
    [root@www ~]# sed -i 's/.$/!/g' regular_express.txt
    [root@www ~]# cat regular_express.txt 
    runoob!
    google!
    taobao!
    facebook!
    # 利用 sed 直接在 regular_express.txt 最后一行加入 # This is a test: 
    [root@www ~]# sed -i '$a # This is a test' regular_express.txt
    [root@www ~]# cat regular_express.txt 
    runoob!
    google!
    taobao!
    facebook!
    zhihu-
    weibo-
    # This is a test
  • 相关阅读:
    今天再次认真整理了浏览器收藏夹
    今天再次认真整理了浏览器收藏夹
    【博客之星】CSDN2013博客之星--分析和预测
    【博客之星】CSDN2013博客之星--分析和预测
    CSDN博客的文章分类和战略规划
    CSDN博客的文章分类和战略规划
    《社交红利》读书总结--如何从微信微博QQ空间等社交网络带走海量用户、流量与收入
    《社交红利》读书总结--如何从微信微博QQ空间等社交网络带走海量用户、流量与收入
    个人名片与诚信
    个人名片与诚信
  • 原文地址:https://www.cnblogs.com/snow-backup/p/11344461.html
Copyright © 2020-2023  润新知