zoukankan      html  css  js  c++  java
  • sed用法

    sed基本用法:
    sed: Stream EDitor
    行编辑器 (全屏编辑器: vi)

    sed: 模式空间
    默认不编辑原文件,仅对模式空间中的数据做处理;而后,处理结束后,将模式空间打印至屏幕;




    sed [options] 'AddressCommand' file ...
    -n: 静默模式,不再默认显示模式空间中的内容
    -i: 直接修改原文件
    -e SCRIPT -e SCRIPT:可以同时执行多个脚本
    -f /PATH/TO/SED_SCRIPT
    sed -f /path/to/scripts  file
    -r: 表示使用扩展正则表达式

    Address:
    1、StartLine,EndLine
    比如1,100
    $:最后一行
    2、/RegExp/
    /^root/
    3、/pattern1/,/pattern2/
    第一次被pattern1匹配到的行开始,至第一次被pattern2匹配到的行结束,这中间的所有行
    4、LineNumber
    指定的行
    5、StartLine, +N
    从startLine开始,向后的N行;

    Command:
    d: 删除符合条件的行;
    p: 显示符合条件的行;
    a \string: 在指定的行后面追加新行,内容为string
    \n:可以用于换行
    i \string: 在指定的行前面添加新行,内容为string
    r FILE: 将指定的文件的内容添加至符合条件的行处
    w FILE: 将地址指定的范围内的行另存至指定的文件中; 
    s/pattern/string/修饰符: 查找并替换,默认只替换每行中第一次被模式匹配到的字符串
    加修饰符
    g: 全局替换
    i: 忽略字符大小写
    s///: s###, s@@@
    \(\), \1, \2

    l..e: like-->liker
      love-->lover
      
      like-->Like
      love-->Love

    &: 引用模式匹配整个串

    字符测试:
    ==:测试是否相等,相等为真,不等为假
    !=: 测试是否不等,不等为真,等为假
    >
    <
    -n string: 测试指定字符串是否为空,空则真,不空则假
    -z string: 测试指定字符串是否不空,不空为真,空则为假


    sed练习:
    1、删除/etc/grub.conf文件中行首的空白符;

    sed -r 's@^[[:spapce:]]+@@g' /etc/grub.conf
    2、替换/etc/inittab文件中"id:3:initdefault:"一行中的数字为5;
    sed 's@\(id:\)[0-9]\(:initdefault:\)@\15\2@g' /etc/inittab
    3、删除/etc/inittab文件中的空白行;
    sed '/^$/d' /etc/inittab
    4、删除/etc/inittab文件中开头的#号; 
    sed 's@^#@@g' /etc/inittab
    5、删除某文件中开头的#号及后面的空白字符,但要求#号后面必须有空白字符;
    sed -r 's@^#[[:space:]]+@@g' /etc/inittab
    6、删除某文件中以空白字符后面跟#类的行中的开头的空白字符及#
    sed -r 's@^[[:space:]]+#@@g' /etc/inittab
    7、取出一个文件路径的目录名称;
    echo "/etc/rc.d/" | sed -r 's@^(/.*/)[^/]+/?@\1@g'
    基名:
    echo "/etc/rc.d/" | sed -r 's@^/.*/([^/]+)/?@\1@g'



    测试:
    整数测试

    -le
    -lt
    -ge
    -gt
    -eq
    -ne
    字符测试
    ==
    !=
    >
    <
    -n
    -z
    文件测试
    -e
    -f
    -d
    -r
    -w
    -x

    if [ $# -gt 1 ]; then


    组合测试条件
    -a: 与关系
    -o: 或关系
    !: 非关系

    if [ $# -gt 1 -a $# -le 3 ]
    if [ $# -gt 1 ] && [ $# -le 3 ]

    起风了,努力生存
  • 相关阅读:
    ip地址和子网掩码
    Mysql 进阶查询 (select 语句的高级用法)
    MHA高可用配置及故障切换
    数据库的备份与恢复需要修改
    每天一分钟,了解mysql索引,事务与存储引擎
    mysql基础命令详解
    带你走进mysql数据库
    Spring XML无自动提示
    Spring环境搭建错误
    读书笔记_java设计模式深入研究 第十一章 装饰器模式 Decorator
  • 原文地址:https://www.cnblogs.com/StivenYang/p/8441309.html
Copyright © 2011-2022 走看看