码迷,mamicode.com
首页 > 系统相关 > 详细

Linux文本处理“三剑客”之sed

时间:2014-08-04 08:20:57      阅读:333      评论:0      收藏:0      [点我收藏+]

标签:sed


    sed(Stream Editor)是一个行编辑工具。下面我们介绍 sed 的实现原理和基本使用方法。


一、sed 的处理文本的流程

    基本处理流程如下:

bubuko.com,布布扣

    处理流程是:每次读入文本文件的一行到内存中的模式空间中,在模式空间中处理后将处理的结果输出,默认会打印到屏幕上。因此,默认情况下,不会改变原文件的内容。


二、sed 命令的使用

基本语法:sed [options]... ‘地址定位 编辑命令‘ FILE...

    地址定位的方法:

        1、行定位:

            start_line[,end_line]

        2、模式匹配

           /pattern1/,/pattern2/ 第一次被pattern1匹配到的行开始,到第一次被pattern2匹配到的行结束之间的所有行

            /pattern/ 被pattern匹配到的行

        3、没有地址定界,代表的是全文。

    常用参数:

        -n: 静默模式,不显示模式空间中的内容

        -r: 支持使用扩展正则表达式

        -i: 修改原文件;

        -e: sed -e "" -e "" -e "", sed "{COM1;COM2;COM3}"

        -f: -e的功能差不多,只是将多个COM写到文件中区。

    编辑命令:命令可在之前加!取反


p:打印    

例如:打印 /etc/fstab 文件的 3 到 5 行

bubuko.com,布布扣

    如果不加 -n 的话,会是什么效果呢?

bubuko.com,布布扣

     这就是 sed 处理流程所决定的,一般 p 命令与 -n 参数一起使用,才能达到想要的效果。

d: 删除

bubuko.com,布布扣

i \text: 行上方,text即为插入的内容

a \text: 行下方,text即为插入的内容

bubuko.com,布布扣

r /path/from/some_file: 把符合条件的行读到指定文件中

bubuko.com,布布扣

w /path/to/some_file: 把符合条件的行保存至指定的文件中

bubuko.com,布布扣

=: 显示符合条件行的行号

bubuko.com,布布扣


s///: s@@@ 查找替换

    g,i:g是全文替换,i忽略大小写

[root@server ~]# sed -e ‘/^#/d‘  -e ‘s/\(id:\)[0-9]\(:initdefault:\)/\13\2/‘ /etc/inittab 
id:3:initdefault:


    基本用法应经介绍完毕,最主要的的如何使用正则表达式来定位地址范围。

本文出自 “逆水寒” 博客,请务必保留此出处http://guoting.blog.51cto.com/8886857/1535130

Linux文本处理“三剑客”之sed,布布扣,bubuko.com

Linux文本处理“三剑客”之sed

标签:sed

原文地址:http://guoting.blog.51cto.com/8886857/1535130

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!