zoukankan      html  css  js  c++  java
  • sed命令使用举例


    选择操作的行范围

    sed -n '1,2p' testsed2.txt  匹配第1到2行
    sed -n '/a/,/b/p' testsed2.txt  匹配从包含a的行到包含b的行
    sed -n '/a/,3p' testsed2.txt  匹配从包含a的行到第3行
    sed -n '/a/p' testsed2.txt  匹配包含a的行
    sed -n 'p' testsed2.txt  匹配所有行

    操作命令

    sed '1,2p' testsed2.txt #打印第一二行

    sed '1,2d' testsed2.txt #删除第一二行

    sed '1,2i est' testsed2.txt #在第一二行前分别插入一行
    sed '1,2i est hello' testsed2.txt #在第一二行前分别插入两行

    sed '1,2a est' testsed2.txt #在第一二行后分别插入一行
    sed '1,2r test.txt' testsed2.txt  #在第一二行后分别插入一个文本文件内容

    sed '1,2w a.txt' testsed2.txt #将匹配行保存到新文件
    sed '1,2=' testsed2.txt #将匹配行的行号显示到前一行中
    sed '1,2s/a/aa/' testsed2.txt #将匹配的行进行查找替换

    sed '1,2s@b@bb@' testsed2.txt #可以用其他符号代替间隔符号


    选项部分

    sed '1,2p' testsed2.txt
    sed -n '1,2p' testsed2.txt #不显示模式空间的内容

    sed -i 'a hello world' test.txt #修改源文件
    cat test.txt 

    sed -e 's/a/aa/g' -e 's/b/bb/i' testsed2.txt #使用-e同时支持多个操作
    sed '{s/a/aa/g;s/b/bb/i}' testsed2.txt #不用-e的方式

    sed -r 's/^(a|b)//' testsed2.txt#支持扩展正则表达式

    练习题目

    1、替换/etc/inittab中的"id:3:initdefault"一行数字为5;
    sed '/^id/s/:[0-9]:/:5:/' /etc/inittab 
    2、删除/etc/init.d/functions的空白行;
    sed -r '/^[[:space:]]*$/d' /etc/init.d/functions
    3、删除/boot/grub/grub.conf文件中行首的空白字符;
    sed -r 's/^[[:space:]]+//g' /boot/grub/grub.conf 
    4、echo一个路径给sed,通过sed取出其目录名;例如echo "/etc/sysconfig/" | sed,返回/etc;
    echo "/etc/sysconfig/" | sed -r 's@/[^/]+/?$@@'





  • 相关阅读:
    中断和异常
    MATLAB总结二
    关于在写第一个模式识别大作业中遇到的几个问题的总结
    学习QT——GUI的基础用法(2)
    Matlab练习——rpy2tr函数与自己实现的ZYX欧拉角的结果不同的问题
    PHP之文件的锁定、上传与下载
    PHP之文件目录基础操作
    PHP之会话控制小结
    PHP之curl
    PHP之数组函数归类
  • 原文地址:https://www.cnblogs.com/tsw1107/p/86d4a3724e1356a3ef71e41c50a26055.html
Copyright © 2011-2022 走看看