• shell-早间学习,每日一点


    1、定位行:
    sed -n '12,~3p' pass #从第12行开始,直到下一个3的倍数行(12-15行)
    sed -n '12,+4p' pass #从第12行开始,连续4行(12-16行)
    sed -n '12~3p' pass #从第12行开始,间隔3行输出一次(12,15,18,21...)
    sed -n '10,$p' pass   #从第10行至结尾
    sed -n '4!p' pass   #除去第4行

    2、正则:'/正则式/'
    sed -n '/root/p' /etc/passwd
    sed -n '/^root/p' /etc/passwd
    sed -n '/bash$/p' /etc/passwd
    sed -n '/ro.t/p' /etc/passwd
    sed -n '/ro*/p' /etc/passwd
    sed -n '/[ABC]/p' /etc/passwd
    sed -n '/[A-Z]/p' /etc/passwd
    sed -n '/[^ABC]/p' /etc/passwd
    sed -n '/^[^ABC]/p' /etc/passwd
    sed -n '/<root/p' /etc/passwd
    sed -n '/root>/p' /etc/passwd

    3、sed编辑(对行的插入、删除、替换操作)
    sed '/root/a admin' /etc/passwd   #在root行后追加一个admin行
    sed '/root/i admin' /etc/passwd   #在root行前插入一个admin
    sed '/root/c admin' /etc/passwd   #将root行替换为admin
    sed '/root/d' /etc/passwd    #删除含有root的行

    s替换
    sed -n 's/root/admin/p' /etc/passwd
    sed -n 's/root/admin/2p' /etc/passwd        #在每行的第2个root作替换
    sed -n 's/root/admin/gp' /etc/passwd
    sed -n '1,10 s/root/admin/gp' /etc/passwd
    sed -n 's/root/AAA&BBB/2p' /etc/passwd       #将root替换成AAArootBBB,&作反向引用,代替前面的匹配项
    sed -ne 's/root/AAA&BBB/' -ne 's/bash/AAA&BBB/p' /etc/passwd #-e将多个命令连接起来,将root或bash行作替换
    sed -n 's/root/AAA&BBB/;s/bash/AAA&BBB/p' /etc/passwd   #与上命令功能相同
    sed -nr 's/(root)(.*)(bash)/321/p' /etc/passwd     #将root与bash位置替换,两标记替换
    或sed -n 's/(root)(.*)(bash)/321/p' /etc/passwd
    bash:x:0:0:root:/root:/bin/root

    y替换
    echo "sorry"|sed 'y/ory/ABC/' #一一对应替换(sABBC)

  • 相关阅读:
    前端常用设计模式和工作中应用场景思考
    webpack从零开始打造react项目(更新中...)
    操作系统-进程
    go语言web框架-如何使用gin教程+react实现web项目
    JavaScript逗号运算符的用法
    react的生命周期和使用
    在Vue项目中使用wangEditor
    TypeScript实现axios
    SpringBoot整合邮件发送(thymeleaf和freemarker)
    SpringBoot整合RabbitMQ
  • 原文地址:https://www.cnblogs.com/pony1223/p/3371433.html
Copyright © 2020-2023  润新知