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. jQuery中$.getJSON的返回值问题

    在使用$.getJSON获得数据库的返回值后,想将该值return传给其他函数.结果遇到问题. $.getJSON(url, data, function(result) { return resul ...

  2. cisco asa5520 IOS故障恢复

    在ASA5520上误删除了IOS 把一台电脑IP 设置成192.168.2.2 255.255.255.0 把IOS的BIN文件复制到这台电脑上,并安装一个CISCO TFTP SERVER V1.1 ...

  3. NPOI导出多张图片到Excel

    常用NPOI导出数据到excel,但没有试过如何导出图片.NPOI最大的特点就是不依赖于Excel组件,服务端不需要安装Excel.在单元格中插入图片主要是用HSSFClientAnchor对象.他有 ...

  4. Web服务器和动态语言如何交互--CGI&FastCGI&FPM浅谈

    一个用户的Request是如何经过Web服务器(Apache,Nginx,IIS,Light)与后端的动态语言(如PHP等)进行交互并将结果返回给用户的呢? 本文浅谈个人观点,可能有误,欢迎拍砖,共同 ...

  5. 何謂COB (Chip On Board) ?介紹COB的演進歷史

    COB (Chip On Board)在電子製造業已經是一項成熟的技術了,可是一般的組裝工廠對它的製程並不熟悉,也許是因為它使用到一些 wire bond 的積體電路(IC)封裝技術,所以很多的成品或 ...

  6. 如何测试一个U盘

    功能测试: 1 在windows xp比较流行的操作系统上是否可以识别(装了驱动后是否可以) 2 在电脑上显示的盘符是否正确 3 总空间,可用空间,已用空间是否显示正确 4 u盘中是否可以拷入各种格式 ...

  7. fstab 介绍

    http://forum.ubuntu.org.cn/viewtopic.php?t=58468 主要翻译自http://www.tuxfiles.org/linuxhelp/fstab.html,根 ...

  8. AIX安装SSH

    AIX 7.1   进入 https://www14.software.ibm.com/webapp/iwm/web/preLogin.do?source=aixbp 先下载需要的openssl,op ...

  9. wireshark的 rdp dissector

    开源 wireshark的 rdp dissector https://github.com/boytm/wireshark_rdp. 1)support TCP reassemble 2)Fastp ...

  10. Windows去掉桌面SVN文件或文件夹问号

    将版本库 的内容检出 到桌面,后才发现桌面上的文件 都变成了问号,本来也以为没有多大问题,删除 .svn 即可,可是删除所有的.svn后,桌面上还是显示问号,刷新了很多次,还重启电脑 了,问号也没有消 ...