sed :Stream EDitor(流编辑器)

sed :模式空间(默认不编辑源文件,仅对模式空间中数据做处理)

sed [options] 'AddressCommand' file ...
  -n: 静默模式,不再默认显示模式空间中的内容
  -i: 直接修改原文件
  -e SCRIPT -e SCRIPT:可以同时执行多个脚本
  -f /PATH/TO/SED_SCRIPT
    sed -f /path/to/scripts file
  -r: 表示使用扩展正则表达式

Address:
  (1)StartLine,EndLine
    比如1,100
    $:最后一行
  (2)/RegExp/
    /^root/
  (3)/pattern1/,/pattern2/
    第一次被pattern1匹配到的行开始,至第一次被pattern2匹配到的行结束,这中间的所有行
  (4)LineNumber
    指定的行
  (5)StartLine, +N
    从startLine开始,向后的N行;

Command:
  d: 删除符合条件的行;
  p: 显示符合条件的行;
  a \string: 在指定的行后面追加新行,内容为string
  \n:可以用于换行
  i \string: 在指定的行前面添加新行,内容为string
  r FILE: 将指定的文件的内容添加至符合条件的行处
  w FILE: 将地址指定的范围内的行另存至指定的文件中;
  s/pattern/string/修饰符: 查找并替换,默认只替换每行中第一次被模式匹配到的字符串
  加修饰符
    g: 全局替换
    i: 忽略字符大小写
  s///: s###, s@@@
    \(\), \1, \2

  &: 引用模式匹配整个串

sed练习:
  1、删除/etc/grub.conf文件中行首的空白符;
    sed -r 's@^[[:spapce:]]+@@g' /etc/grub.conf
  2、替换/etc/inittab文件中"id:3:initdefault:"一行中的数字为5;
    sed 's@\(id:\)[0-9]\(:initdefault:\)@\15\2@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'
    基名:
    echo "/etc/rc.d/" | sed -r 's@^/.*/([^/]+)/?@\1@g'

sed使用详解的更多相关文章

  1. Linux学习之sed命令详解

    概述 sed是stream editor的简称,也就是流编辑器.它一次处理一行内容,处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区 ...

  2. sed命令详解 vim高级技巧 shell编程上

    第1章 sed命令详解 1.1 查找固定的某一行 1.1.1 awk命令方法 [root@znix ~]# awk '!/oldboy/' person.txt 102,zhangyao,CTO 10 ...

  3. 【转】【Linux】sed命令详解

    sed命令详解 sed是stream editor的简称,也就是流编辑器.它一次处理一行内容,处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令 ...

  4. 转 linux之sed命令详解

    http://jingyan.baidu.com/article/fec4bce2228f60f2618d8bb0.html sed  编辑裁剪文件命令 sed -i "s/\/db\/te ...

  5. sed命令详解 (转载)

    sed是stream editor的简称,也就是流编辑器.它一次处理一行内容,处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内 ...

  6. Linux shell sed 命令详解

    详细的sed命令详解,请参考https://my.oschina.net/u/3908182/blog/1921761 sed命令常见用途 查找关键词做全局替换 查找某行的关键词做替换 查找关键字所在 ...

  7. 干货!上古神器 sed 教程详解,小白也能看的懂

    目录: 介绍工作原理正则表达式基本语法数字定址和正则定址基本子命令实战练习 介绍 熟悉 Linux 的同学一定知道大名鼎鼎的 Linux 三剑客,它们是 grep.awk.sed,我们今天要聊的主角就 ...

  8. shell sed过滤器详解

    1. Sed简介sed 是一种在线编辑器,它一次处理一行内容.处理时,把当前处理的行存储在临时缓冲区中,称为"模式空间"(pattern space),接着用sed命令处理缓冲区中 ...

  9. 【文本处理命令】之sed命令详解

    sed行处理命令详解 一.简介 sed命令是一种在线编辑器.一个面向字符流的非交互式编辑器,也就是说sed不允许用户与它进行交互操作.sed是按行来处理文本内容的,它一次处理一行内容.处理时,把当前处 ...

  10. shell 三剑客之 sed pattern 详解

    sed 基础介绍 语法格式 sed 处理过程 sed 选项 cat sed.txt '-p' 打印输出 ,默认输出两次,流输出一次,源文件输出一次 sed 'p' sed.txt -n  只显示处理的 ...

随机推荐

  1. 判断Table表中是否含有某一列

    if (row.Table.Columns.Contains("DealRecord_GiftCost")) {     if (row["DealRecord_Gift ...

  2. web前端的学习误区

    web前端的学习误区  网页制作是计算机专业同学在大学期间都会接触到的一门课程,而学习网页制作所用的第一个集成开发环境(IDE)想必大多是Dreamweaver,这种所见即所得的“吊炸天”IDE为我们 ...

  3. C#比较两个时间大小

    DateTime t1 = Convert.ToDateTime("2012-12-31 23:59:00");            DateTime t2 = Convert. ...

  4. Oracle sql语言模糊查询--like后面的通配符

    关于like后面的条件,Oracle提供了四种匹配模式: 1,% :表示任意0个或多个字符.可匹配任意类型和长度的字符,有些情况下若是中文,请使用两个百分号(%%)表示. 比如 SELECT * FR ...

  5. jquery判断客户端的类型

    针对不同客户端下载链接的页面响应样式不一样,更人性点而已 //匹配客户端类型 var isAndroid = navigator.userAgent.toLowerCase().match(/andr ...

  6. Win32 多线程的创建方法和基本使用

    Win32多线程的创建方法主要有: (1)CreateThread() (2)_beginthread()&&_beginthreadex() (3)AfxBeginThread() ...

  7. MFC连接ftp服务器

    CInternetSession* m_pInetSession; CFtpConnection*   m_pFtpConnection; //连接服务器的函数 BOOL CftpClientDlg: ...

  8. javascript闭包特性

    http://www.cnblogs.com/rubylouvre/archive/2009/07/24/1530074.html var name = "The Window"; ...

  9. Can't create a new thread (errno 11); if you are not out of available memory, you can consult the manual for a possible OS-dependent bug

    解决方案: http://www.javatang.com/archives/2013/06/19/2701909.html

  10. Java date

    http://liyongyao.blog.51cto.com/2895045/1206770 http://javaforu.com/