grep命令的查找功能,sed命令的流编辑功能和awk(现已发展成为一门编程语言)作为更强大的文本编辑命令,在Linux系统管理中,起着重要且全面的作用。而后来出现的perl编程语言(PracticalExtraction and Report Language),可以实现sed和awk的几乎所有功能。但使用perl相对复杂和臃肿,因而sed和awk仍然活跃在 shell 编程的各个方面。

(1) sed是非交互式的编辑器,它按行处理对象文件,但不修改处理文件本身,而是逐行读入文件内容并在临时缓存区保存副本并对其进行处理。处理完成每一行就将该行目标内容打印到屏幕,并将该缓存区内容删除,然后读入下一行进行处理。另外需要注意的是,和grep不同,sed不论是否知道指定的模式,它的退出状态都是0(Linux中通常代表真)。只有存在语法错误时,sed的退出状态才不是0。

sed命令的一般格式为

sed [option]    ‘{ command}’  datafile

或者

sed [option]  -f    sed_script.sh    data_file

如果没有输入文件,则sed将从标准输入中接收输入流。

(2)常用的sed option

-n取消默认输出。sed命令默认打印输入文件的所有行的同时,再次打印匹配行内容。加上-n命令后,则只打印匹配命令中指明的pattern的行。

-e指定多个编辑命令。sed默认之接受一组命令,如果要指定多个命令,则需要使用-e选项指明各个命令。例如

sed -n -e '1,800{/pattern/p}'  -e  '1,800{/parttern/=}'  datafile

该命令使用-e指定两个命令。前一个打印匹配pattern的行,后一个打印匹配pattern的行的行号。1, 800是定址条件,指明只查询处理1到800行的数据。

(3)sed命令

命令p用于显示sed处理的内容,常和-n选项一起使用,以取消默认打印操作,只打印选定内容。

命令d用于删除匹配行。注意删除的是缓冲区副本而非文件本身。

sed ‘$d’ datafilesed ‘/pattern/d’ datafile

第一条命令删除文件的最后一行($匹配最后一行),打印文件的所有其它内容。第二条命令删除匹配pattern的行,并打印其它所有行。命令s用于替换指定内容。

sed ‘s/pattern/newconent/g’ datafilesed  –n ‘1,20s/str$/newconent/gp’ datafile

第一条命令全局替换(g)文件中符合pattern的字符串为newconent。第二条命令处理1到20行内匹配以str结尾的行($匹配行尾),并把str更换为newcontent后打印匹配行。

上述例示中都以 / 作为匹配串和新字符串的分隔符,但实际上,可以指定其它分隔符(换行符、反斜杠除外)。指定其它分隔符时,可使用类似如下方式。

sed  ‘s#pattern#newcontent#g' datafile

上述命令指定#为分隔符。

命令 r 为读命令,使用该命令将另一个文本文件的内容加到当前文件的特定位置上读出。

sed  ‘/pattern/r input.txt’  datafile

如果在文件datafile的某一行匹配到pattern,就在该行后读入文件input.txt的内容。该过程为全局型行为。

命令w为写命令,将当前文件的内容写入到另一个文件中。

  • 相关文章推荐:
  • linux sed命令批量替换字符串用法详解
  • Linux删除文件内空行四种方法
  • linux shell脚本命令之sed教程
  • 本文来自:爱好Linux技术网
  • 本文链接:http://www.ahlinux.com/start/cmd/9000.html

sed命令详解与示例相关推荐

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

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

  2. LInux sed命令详解

    文章转自:http://qifuguang.me/2015/09/21/sed%E5%91%BD%E4%BB%A4%E8%AF%A6%E8%A7%A3/#comments sed命令详解 sed是st ...

  3. linux 之sed命令详解

    sed命令详解 sed是什么 sed是linux文本处理三剑客之一,全称 StreamEDitor,非常著名的行编辑器,功能十分强大. sed的工作过程 sed处理文本时每次从文件复制出来一行,放在工 ...

  4. linux sed p变量,Linux sed 命令详解系列教程之各种问题解决

    本文目录: 1 sed中使用变量和变量替换的问题 2 反向引用失效问题 3 "-i"选项的文件保存问题 4 贪婪匹配问题 5 sed命令"a"和"N& ...

  5. cut\grep\awk\sed命令详解

    cut\grep\awk\sed命令详解 1.cut命令详解及实例 (1)作用:提取文件中指定的列 语法格式:cut  选项  文件名   (2)选项作用:      -d 分隔符     按照指定的 ...

  6. ubuntu下sed命令详解 - Dicky - 开源中国社区

    ubuntu下sed命令详解 - Dicky - 开源中国社区 ubuntu下sed命令详解 - Dicky - 开源中国社区 ubuntu下sed命令详解     7人收藏此文章, 我要收藏 发表于 ...

  7. linux sed.写文件,Linux文件处理sed命令-linux sed命令详解-linux sed写入文件-嗨客网

    Linux文件处理sed命令详解教程 Linux sed命令使用 Linux sed 命令处理时,把当前处理的行存储在临时缓冲区中,称为 "模式空间"( oattern space ...

  8. Linux的sed命令详解大全

    Linux的sed命令详解大全 一.sed命令介绍 二.sed 的运行模式 三.sed的相关选项 四.sed基本用法 1.sed语法 2.sed的查看功能 ①查看passwd文件的第5到第8行内容 ② ...

  9. 【Linux篇】sed命令详解

    文章目录 sed命令详解 一.基本语法 二.实操案例 内部命令选项说明 命令选项说明 标志 三.sed小技巧 sed命令详解 sed是一种流编辑器,它一次处理一行内容.处理时,把当前处理的行存储在临时 ...

最新文章

  1. 【原创】vmware tools点了安装却安装不了的问题解决方法
  2. 难点电路详解之负反馈放大器电路(2)
  3. 走近人脸识别:时代趋势下的弄潮儿
  4. 【PP MRP】MRP参数详解
  5. 工作流实战_05_flowable 流程定义的挂起与激活
  6. html标签之常用标签
  7. java中选择结构有哪些_Java中的选择结构
  8. Bailian4100 进程检测【排序】
  9. synchronized的使用(一)
  10. 【观点】失败应聘的五大原因
  11. 毕业设计 - 基于JAVA人脸识别管理系统(人脸搜索与人脸库管理)
  12. 按一定条件筛选df1,返回结果中df1的索引取df2的数据
  13. 房产中介管理系统php,房屋中介管理系统简易源代码.doc
  14. JavaMail gmail邮箱,gmx邮箱,disroot邮箱,protonmail邮箱,tutanota邮箱以及阿里云服务器邮箱配置
  15. python使用matplotlib 画柱状图代码_Python 使用 matplotlib 画柱状图教程
  16. 相机视频展示开源平台ISpy
  17. Ada 程序设计语言(The Ada Programming Language)[第一集]
  18. js 无弹框打印_打印预览,关闭窗口等js代码
  19. 信息学奥林匹克c语言提高组,信息学奥赛提高组一级全攻略!你值得拥有!
  20. Unity 加载AssetBundle中AB包的几种方式

热门文章

  1. 中国平安增持华夏幸福5.69%股权 看好长期战略协同
  2. 【java感悟】接口,抽象类的关系
  3. 与贸易有关的知识产权协议 (转)
  4. Azure Service Bus (服务总线) 入门
  5. Python 关于浮点数取整详解
  6. 特征空间、(数据集)线性可分:线性(二分类)模型
  7. 装了oracle 开机卡黑屏,开机黑屏进不了系统,手把手教你解决电脑开机黑屏进不了系统...
  8. QR分解、RQ分解与SVD
  9. Android系统SystemUI启动过程
  10. PPT 小白洗白教程