• linux三剑客-sed


     sed命令

    linux文本处理三剑客

    sed stream editor

        做为行编辑器,对文本进行编辑(以行为单位进行编辑)

        注意:sed编辑文件,却不改变原文件

    sed工作原理

    制定一个文本文件,依次读取文本文件中每行的内容,读取到模式空间中(PATTERN SPACE),在模式空间中进行文本匹配(正则表达式),对匹配后的内容进行修改(替换、删除、打印、修改、保存)

     用法:

    sed[option]…{script-only-if-no-other-   script}[input-file]…

    sed[参数] “sed自己独立的用法格式的语句”[文本文件]

    常见选项

        -n 拒绝默认显示[默认情况下全部输出]

        -r 指定使用扩展的正则表达式

        -e script for or while if

        -f 指定脚本文件

        -l 指定 文本长度

        -i 直接修改文件内容

    地址定界方式

        1.直接匹配数值 sed -n ‘5p’文件

        2.$指定行尾 sed -n ’10,$p’ 文件

        3.digit~步长   eg. sed -n ‘1~3’文件

        4./正则1/,/正则2/

       sed -n ‘/k{5,}/$p’ abc

           sed -n ‘/(fd)+/,7p’ abc

        5.0,addr

           addr可以为数字/$/正则表达式

          sed -n ‘0,/k{5,}/p’abc

        6.addr,+N

          配置addr行到,addr后N行

          sed -n ‘/fd/,+5p’ adc

    常见命令

        p print 打印(默认在屏幕上显示出来)建议和-n一起使用

        c 替换

          sed “/aaa/c A” a

        d 删除

          sed “/aaa/d” a

          sed “1,3d” a

        n N(读取/添加)模式匹配到的下一行内容,再对其进行操作

        w 保存文件内容到一个新的文件

             sed “/patthen/w新的文件名”原来的文件名

             sed “/k/w /tmp/aabbcc” abc

        *s* 文本内容替换,默认替换模式空间匹配到的第一项;

             语法格式:s/pattern/字符串/

             中间的斜杠可以替换为任意一个特殊字符

             g global全部

                12 和正则表达式的分组相同,实现反向应用

                   指定某一个匹配选项进行修改替换

             & 调用前面匹配的内容

                sed “s/r..t/&er/g” 文件

             w

             p

    sed的高级应用

        模式空间 – hold space“占有空间”

    练习:

    1. 删除/boot/grub/grub.conf文件中所有空白开头的行行首的空白字符;

    sed ‘s/^[[:space:]]+//g’ /boot/grub/grub.conf

    2. 删除/etc/fstab文件中所有以#开头,后面至少跟一个空白字符的行的行首的#和空白字符

    sed ‘s/^#[[:space:]]+//g’ /etc/fstab

    3. 给定一个目录,取出其目录名

    4. 给定一个目录,取出其文件名

    dirname – 取出文件路径的路径部分

    basename – 取出文件路径的文件名部分

  • 相关阅读:
    【NLP_Stanford课堂】最小编辑距离
    【NLP_Stanford课堂】句子切分
    【NLP_Stanford课堂】词形规范化
    【NLP_Stanford课堂】分词
    【NLP_Stanford课堂】正则表达式
    【Python自然语言处理】第一章学习笔记——搜索文本、计数统计和字符串链表
    【C++ Primer】详解C++和C中的float中的有效数字
    【C++ Primer】读书笔记_第一章
    【SQL Server 2012】按倒序存储“分组统计”结果的临时表到新建表
    Git学习
  • 原文地址:https://www.cnblogs.com/TheNeverLemon/p/11384419.html
Copyright © 2020-2023  润新知