前言

sed是一种流编辑器,它是文本处理中非常有用的工具,能够完美的配合正则表达式使用,功能不同凡响。处理时,把当前处理的行存储在临时缓冲区中,称为『模式空间』(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有改变,除非你使用重定向存储输出。sed主要用来自动编辑一个或多个文件,简化对文件的反复操作,编写转换程序等。

sed的用法

$ sed [-nefr] [动作]

参数:

-n : 使用安静模式。在一般sed用法中,所有来自STDIN的数据一般都会被列出到屏幕上。但如果加上-n参数后,则只有经过sed特殊处理的那一行(或者操作)才会被列出来。

-e : 直接在命令行模式上进行sed的动作编辑。(默认)

-f : 直接将sed的动作写在一个文件内, -f filename则可以执行filename内的sed动作。

-r : sed的动作支持的是扩展型正则表达式的语法(默认是基础正则表达式语法)。

-i : 直接修改读取的文件内容,而不是屏幕输出。

默认情况下sed不直接作用于读取的文件中

动作说明: [n1[,n2]] function

n1,n2 : 不见得会存在,一般代表选择进行动作的行数,举例来说,如果我的动作是需要在10到20行之间进行的,则“10,20[动作行为]”。

function 有下面的这些参数:

a : 新增到下一行,后面可以接字符串

c : 替换,后面可以接字符串

d : 删除,后面不接热河参数

i : 插入到上一行,后面可接字符串

p : 打印,通常会与参数 sed -n 一起运行

s : 查找并替换特定字符串,通常搭配正则表达式。

例如,1,20s/old/new/g

演示

//假设有text文件 $ sed '2,5d' text #将第2~5行删除 $ sed '2a hahaha' text #在第二行后加上“hahaha”字样 $ sed '2a hahaha > xixixi' text #在第二行后加上两行字 $ sed '2,5c No 2-5 number' text #将第2~5行的内容替换成为“No 2-5 number”,是整行替换 $ sed -n '5,7p' text #将5~7行打印出来,一定要加 -n $ sed 's/hahaha/ssss/g' text #将hahaha字段替换成ssss,这是部分数据的查找并替换

sed还可以和正则表达式配合使用

如:

$ sed 's/^h/ssss/g' text #将h开头的字段替换成ssss

注意

sed后面接的动作,务必以两个单引号括住。

使用p(打印)参数时,sed一定要用-n,否则所有的行都会被输出,这样就没有意义了。

sed默认不直接作用于读取的文件中。

-i参数要慎用,它会直接修改读取的文件内容。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对脚本之家的支持。

面试linux中sed的用法,linux中sed命令的使用与注意小结相关推荐

  1. mysql中去重的用法_mysql中去重 distinct 用法

    在使用MySQL时,有时需要查询出某个字段不重复的记录,这时可以使用mysql提供的distinct这个关键字来过滤重复的记录,但是实际中我们往往用distinct来返回不重复字段的条数(count( ...

  2. python中readlines函数用法,python中read() readline()以及readlines()用法

    我们谈到"文本处理"时,我们通常是指处理的内容.Python 将文本文件的内容读入可以操作的字符串变量非常容易.文件对象提供了三个"读"方法: .read(). ...

  3. linux中ftp的用法,linux中的ftp命令用法(7页)-原创力文档

    第 第 PAGE 1 页 共 NUMPAGES 1 页 linux中的ftp命令用法 Linux系统中的ftp命令功能强大,那么它的具体用法是怎样呢?下面由小编为大家整理了linux中的ftp命令用法 ...

  4. Linux下dpkg的用法,linux中管理包的apt和dpkg命令用法

    1,apt-get命令 apt-get是debian,ubuntu发行版的包管理工具,与红帽中的yum工具非常类似,适用于deb包管理式的操作系统,主要用于自动从互联网的软件仓库中搜索.安装.升级.卸 ...

  5. python中path的用法,python中path的用法

    如何将python的路径加到path中 方法一:函数添加 1 import sys 2 查看sys.path 3 添加sys.path.append("c:\\") 方法二:修改环 ...

  6. mysql中正则表达式的用法_Mysql中正则表达式Regexp常见用法

    Mysql中Regexp常见用法 模糊匹配,包含特定字符串 # 查找content字段中包含"车友俱乐部"的记录 select * from club_content where ...

  7. python中max函数用法_Python中max函数用法实例分析

    Python中max函数用法实例分析 更新时间:2015年07月17日 15:45:09 作者:优雅先生 这篇文章主要介绍了Python中max函数用法,实例分析了Python中max函数的功能与使用 ...

  8. python中print的用法_Python中print函数简单使用总结

    Python中print函数简单使用总结 print函数是Python的入门,每一个学习python的人都绕不开这个函数,下面介绍一下这个函数的用法. 打开电脑,选择python软件,下面选择pyth ...

  9. python中lambda()的用法_python中lambda()的用法

    在C++11和C#中都有匿名函数的存在.下面看看在python中匿名函数的使用. 1.lambda只是一个表达式,函数体比def简单很多. 2.lambda的主体是一个表达式,而不是一个代码块.仅仅能 ...

最新文章

  1. 【Qt】通过QtCreator源码学习Qt(九):容器算法总结
  2. BZOJ4004: [JLOI2015]装备购买
  3. 单片机独立式按键c语言程序,(原创)51单片机C语言程序设计--速学教程实例(入门篇)之独立按键(查询)...
  4. 开始使用Spring Cloud实战微服务
  5. 【剑指offer】面试题58 - II:左旋转字符串(Java)
  6. 美团试水机器人送外卖;苹果向第三方提供 iPhone 维修零件;GoLand 2019.2.1 发布 | 极客头条...
  7. Got error ‘parentheses not balanced‘ from regexp
  8. paip。java 高级特性 类默认方法,匿名方法+多方法连续调用, 常量类型
  9. vs工程 vcproj和开发环境定义宏
  10. 互联网日报 | 6月13日 星期日 | 腾讯开展“饭圈乱象”专项整治;端午档单日放映场次刷新纪录;湖北取消除武汉外落户限制...
  11. sqlmap注入之tamper绕过WAF防火墙过滤
  12. unity识别图片颜色并把颜色数量排序
  13. #NAME?_#NAME?
  14. append()方法
  15. 统计全年12个月数据
  16. 如何辨别上市公司财务造假
  17. PMP项目管理其他知识点
  18. Apache Ranger 1.1.0 用户指南
  19. HCIE实用性高吗?难考到什么程度?
  20. 《留侯论》-苏轼-古代文学

热门文章

  1. git 查看当前仓库地址以及设置新的仓库地址
  2. arduino控制光敏传感器
  3. 纯电阻电路的分析方法——结点电压法
  4. r语言各形状编号_R语言plot()函数的符号、颜色和尺寸
  5. 自学C++笔记(第一部分:C++核心编程)
  6. 中文繁体字与简体字转换
  7. cpu功耗排行_2019年cpu功耗排行榜_电脑处理器排行榜2019
  8. 内卷、PUA、大小周:90后决定逃离大厂
  9. Git工作流学习笔记
  10. 基于Arduino的水位检测系统