zoukankan      html  css  js  c++  java
  • Linux文本处理工具——Sed

    sed:数据流编辑器; awk:报告文本的生成器

    sed 基本用法:(Stream EDitor) Stream 流 EDitor 编辑器
    行编辑器
    全屏编辑器:vi/vim
    sed:内存空间(模式空间)
    默认不编辑源文件,仅对模式空间中的数据作处理,处理结束后,将模式空间打印到屏幕

    sed [options] 'AddressCommannd' file ...
    -n: 静默模式,不再默认显示模式空间中的内容
    -i: 直接修改源文件
    -e SCRIPT -e SCRIPT:可以同时执行多个脚本
    -f file: sed -f file filetest.txt 脚本文件处理源文件
    -r: 表示使用扩展正则表达式
    history | sed 's/^[[:space:]]*//g' | cut -d' ' -f1

    Address:
    1. StartLine,EndLine e.g: 1,100
    2. /RegExp/ 正则表达式 e.g:/^root/
    3. /Pattern1/,/Pattern2/ Pattern 模式
    第一次被Pattern1匹配到的行开始,到第一次被Pattern2匹配到的行结束,这中间的所有行
    4. LineNumber;指定行
    $:倒数第一行
    $-1:倒数第二行
    5. StartLine,+N 从指定行开始向后N行

    Command:
    d:删除符合条件的行 e.g: sed '1,2d' /etc/fstab
    sed '/oot/d' /etc/fstab
    sed '1,+2d' /etc/fstab
    p:显示符合条件的行 e.g: sed -n '/^//p' /etc/fstab
    a string:在指定的行后面追加新行,内容为string e.g: sed '/^//a #Hello World!' /etc/fstab
    i string:在指定的行前面添加新行,内容为string e.g: sed '/^//i #Oh,my god!' /etc/fstab
    r FILE:将指定的文件内容添加到符合条件的行处 e.g: sed '2r /etc/issue' /etc/fstab
    w FILE:将地址指定的范围内的行另存至指定的文件中 e.g: sed '/oot/w /tmp/oot.txt' /etc/fstab
    s/Pattern/String/:查找并替换,默认只替换每行中第
    一次被匹配到的字符串加修饰符 e.g: sed 's/oot/OOT/' /etc/fstab
    g:全局替换 e.g: sed 's/oot/OOT/g' /etc/fstab
    i:忽略字符大小写
    s///:s###:s@@@ e.g: sed 's@/@#@g' /etc/fstab
    &:引用模式匹配到的整个串 e.g: sed 's#..t#&er#g' /etc/fstab
    e.g: sed 's#(.)oo(.)#1OO2#g' /etc/fstab
    练习:
    1、删除/etc/grub.conf文件中行首的空白字符;
    sed -r 's/^[[:space:]]*//g' /etc/grub.conf

    2、替换/etc/inittab文件中"id:3:initdefault:"一行中的数字5;
    sed 's/(id:)[0-9](:initdefault:)/152/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'

  • 相关阅读:
    sublime使用及插件
    Unity 查找
    Unity 3D 的四种坐标系
    C#知识点<4>
    C#知识点<3>
    C#知识点<2>
    排序算法
    OOP的三大特性------封装、继承、多态
    C#常用函数
    C++-------------类和对象
  • 原文地址:https://www.cnblogs.com/vurtne-lu/p/6807350.html
Copyright © 2011-2022 走看看