今天继续给大家介绍Linux基础知识,本文主要内容是Linux四剑客——sed。

一、sed命令使用和参数

sed是一种流编辑器,可以对文本进行增删查改等操作,我们常使用sed对文件的指定内容进行批量替换。在sed命令的使用中,要特别注意的是sed拥有缓冲区,因此sed对文件的修改实际上是对缓冲区中的文件副本的修改,文件本身并没有改变,除非显式的将缓冲区中的内容保存到文件中。sed比较类似于offfice的保存机制。
sed命令常用参数如下:
-f 后面跟一个文本文件,表示将文本文件的内容作为sed命令的后续参数和对象
-i 表示直接修改文件内容,sed加上此参数后对文件的修改会生效
-r 表示支持扩展的正则表达式

二、sed命令使用示例

为了使大家对sed命令的使用更加熟练,在这里我列举几个sed命令示例供大家参考,当然,sed的命令远不止这些,这里只是列举了几个常见的sed命令,其他的sed命令大家如果感兴趣也可以自行学习。

(一)sed替换

如果在sed的字符串的开头为s,则sed起到的作用是进行替换,sed替换命令大致格式为:

sed 's/123/321/' file

在上述命令中,s是sed的子命令,表示sed要执行的操作是替换,三个斜杠是定界符,第一个斜杠前面是sed的子命令,第一个斜杠和第二个斜杠之间的是要被替换的字符串,第二个斜杠和第三个斜杠之间的是要替换成的字符串,在最后的斜杠后面还可以跟g表示全面替换,如果跟Ng(N是一个正整数),就表示从每行的第N个开始进行替换。最后的斜杠后面还可以跟p表示打印发生替换的行,但是该参数通常结合-n参数运行。sed命令的定界符除了斜杠以外,还可以使用“|”、“#”或者“:”。如果在定界符之间需要查找或者替换的字符串含有定界符本身,则需要事项反斜杠对定界符进行转义。
sed的替换命令如下所示:

sed 's/boy/girl/' file
sed -n 's/boy/girl/p' file
sed 's/boy/girl/2g' file

上述三条命令,都表示将file文本中的boy替换为girl,第一条命令表示把每行的第一个boy替换为girl,第二条命令表示只打印发生替换的行,第三条命令表示从每行的第二个boy开始进行替换。
上述三条命令执行效果如下:

sed的替换还可以结合以匹配字符串标记&,从而得到更加绚丽的效果,已匹配字符串使用命令如下:

sed 's/\w\+/[&]/g' file

上述命令效果如下:

(二)sed删除

如果在sed命令的最后出现d,则此时sed命令的作用是删除指定的字符串,sed删除的命令示例如下:

sed '/boy/d' file
sed '/^boy/d' file
sed '/^$/d' file
sed '4d' file
sed '2,5d' file
sed '3,&d' file

上述五条命令效果为:①删除掉文本中的boy②删除以boy为开头的行③删除所有的空行④删除掉第四行⑤删除掉2到5行⑥删除掉第三行以及其后面的所有行。
上述命令执行效果如下所示:

(三)sed写入

如果在sed中出现了a或者i,则表示在匹配到的字符串位置插入新的内容,如果是a,则表示在该处的上面一行加入,如果是i,则表示在该处的下面一行插入。sed的插入命令示例如下:

sed '/^boy/a\insert!' file
sed '3a\insert!' file
sed '/boy/i\insert!' file

上述三条命令,都表示插入一行insert!,但是插入的位置有所不同,第一条表示在以boy为开头的行下方插入该行,第二条表示在第三行下面插入该行,第三条表示在有boy的行上面插入该行。
上述三条命令效果如下所示:

原创不易,转载请说明出处:https://blog.csdn.net/weixin_40228200

Linux四剑客详解——sed相关推荐

  1. linux四剑客-grep/find/sed/awk/详解-技术流ken

    四剑客简介 相信接触过linux的大家应该都学过或者听过四剑客,即sed,grep,find,awk,有人对其望而生畏,有人对其爱不释手.参数太多,变化形式太多,使用超级灵活,让一部分人难以适从继而望 ...

  2. [linux]四、详解vim编辑器(超详细)

    目录 1.vim编辑器是linux里的文本编辑器. 1.1.vi和vim的区别在哪里 1.2.linux里编辑的文本在windows里是否可以打开 1.3.为什么有乱码? 1.4.查看linux里的文 ...

  3. Linux系统 logrotate 详解

    对于 Linux 系统安全来说,日志文件是极其重要的工具.不知为何,我发现很多运维同学的服务器上都运行着一些诸如每天切分 Nginx日志之类的 CRON 脚本,大家似乎遗忘了 Logrotate,争相 ...

  4. centos7中ps显示的内容_值得收藏,史上最全Linux ps命令详解

    原标题:值得收藏,史上最全Linux ps命令详解 一.程序员的疑惑 大概在十多年前,我当时还是一个产品经理.由于一些工作的原因,需要向运维工程师学习一些linux常用命令. 当使用linux ps这 ...

  5. Linux常用命令详解(最全)

    Linux命令目录 Linux命令集合 系统信息 关机 (系统的关机.重启以及登出 ) 文件和目录 文件搜索 挂载一个文件系统 磁盘空间 用户和群组 文件的权限 - 使用 "+" ...

  6. linux文件权限详解

    linux文件权限详解 一.文件和目录权限概述 在linux中的每一个文件或目录都包含有访问权限,这些访问权限决定了谁能访问和如何访问这些文件和目录. 通过设定权限可以从以下三种访问方式限制访问权限: ...

  7. linux awk命令详解,使用system来内嵌系统命令,批量github,批量批下载视频, awk合并两列...

    linux awk命令详解 简介 awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大.简单来说awk就是把文件逐行的读入,以空格为默认分 ...

  8. linux sort 命令详解(转 )

    linux sort 命令详解 sort是在Linux里非常常用的一个命令,管排序的,集中精力,五分钟搞定sort,现在开始! 1 sort的工作原理 sort将文件的每一行作为一个单位,相互比较,比 ...

  9. 【Linux】Linux crontab 命令详解

    原文来自:http://ir.hit.edu.cn/~wsong/development/crontab.html Linux crontab 命令详解 在 Linux 中,任务可以被配置在指定的时间 ...

  10. Linux网络编程---详解TCP

    Linux网络编程---详解TCP的三次握手和四次挥手_shanghx_123的博客-CSDN博客_tcp的协议数据单元被称为 TCP协议详解(TCP报文.三次握手.四次挥手.TIME_WAIT状态. ...

最新文章

  1. 梳理MVC 架构 MVVM架构
  2. PHP 各种实用资源
  3. Exceptions
  4. .NET6之MiniAPI(二十一):限流
  5. Excel模板导出之动态导出
  6. 工作262:HBuilderX常见快捷键
  7. noi 3531 判断整除
  8. python 脚本_基于Python的ArcGIS脚本编程知识点总结
  9. 201521123054 《Java程序设计》 第2周学习总结
  10. JavaWeb检测注册内容是否在数据库中有相同的内容
  11. 装tensorflow未果
  12. 排名前5位的免费Java电子书
  13. Unity2021.2.0版本汉化
  14. Linux安装Jenkins教程
  15. SAS 金融函数 PMT IRR
  16. git回退commit的操作
  17. 大二的第一次社会毒打
  18. Android录制桌面视频screenrecord
  19. C#文本型数值转换为数值类型
  20. ionic2混合应用调起原生地图应用

热门文章

  1. 遗传优化算法优化LSTM结构-准确率
  2. TF-layers.MaxPooling1D
  3. Linux16.04与win10搭建samba服务器
  4. spring-retry重试与熔断详解—《亿级流量》内容补充
  5. 基于Hosted WebCore 方式部署Web Role
  6. 博文视点Open Party上海站 即将精彩呈现
  7. 《沉浸式线性代数》完整版正式发布,全交互式体验
  8. python类:描述器Descriptors和元类MetaClasses
  9. Python内存管理:垃圾回收
  10. python 爬虫性能_python-爬虫性能相关