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@/[^/]+/?$@@'





  • 相关阅读:
    GuavaCache简介(一)
    四层、七层负载均衡的区别
    腾讯云服务器 Centos6.5 安装 nginx1.12.0
    tomcat8性能优化
    JAVA 正则表达式的三种模式: 贪婪, 勉强和占有的讨论
    java中值传递和引用传递
    架构师书籍
    大型网站架构系列:20本技术书籍推荐
    RabbitMQ
    支付宝付款流程
  • 原文地址:https://www.cnblogs.com/tsw1107/p/86d4a3724e1356a3ef71e41c50a26055.html
Copyright © 2011-2022 走看看