专栏首页SnailTyanLinux sed编辑器

Linux sed编辑器

版权声明:博客文章都是作者辛苦整理的,转载请注明出处,谢谢! https://blog.csdn.net/Quincuntial/article/details/54349059

文章作者:Tyan 博客:noahsnail.com | CSDN | 简书

1. sed编辑器

sed编辑器中是Linux世界中最广泛使用的两个命令行编辑器之一。sed编辑器被称作流编辑器(stream editor),流编辑器在编辑器处理数据之前基于预先提供的一组规则来编辑数据流。sed编辑器可以根据命令来处理数据流中的数据。sed编辑器会执行以下操作:

  1. 一次从输入中读取一行数据。
  2. 根据所提供的编辑器命令匹配数据。
  3. 按照命令修改流中的数据。
  4. 将新的数据输出到STDOUT。

在流编辑器将所有命令和一行数据匹配完毕后,它会读取下一行数据重复这个过程。

2. 命令形式

sed命令的格式如下:

sed options script file

3. Demo

  • 基本处理
$ echo "This is a test" | sed 's/test/big test/'
This is a big test

上面的例子中使用了s命令,s命令会用斜线中的第二个文本来替换第一个文本。处理文件如下:

# test文件内容

$ cat test
This is a test.
This is a test.
This is a test.
This is a test.
This is a test.


# sed处理
$ sed 's/test/demo/' test
This is a demo.
This is a demo.
This is a demo.
This is a demo.
This is a demo.

# test文件内容
$ cat test
This is a test.
This is a test.
This is a test.
This is a test.
This is a test.

**注:**sed编辑器不会修改文本文件的数据,它只会将处理后的数据发送到STDOUT。

  • 执行多个命令

-e选项可以执行多个命令,多个命令用;隔开。

$ sed -e 's/a/an/; s/test/egg/' test
This is an egg.
This is an egg.
This is an egg.
This is an egg.
This is an egg.
  • 从文件中读取命令

-f选项可以让sed执行文件中的命令。

$ cat script.sed
s/a/an/
s/test/egg/

$ sed -f script.sed test
This is an egg.
This is an egg.
This is an egg.
This is an egg.
This is an egg.

参考文献

  1. Linux命令行与shell脚本编程

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Linux的vmstat命令

    vmstat命令主要用来提取系统信息,其会生成一个详尽的系统内存和CPU使用情况报告。

    Tyan
  • Python的is None vs ==None

    想要弄清楚is None和==None的区别,首先要清楚==和is的区别。==和is的区别如下:

    Tyan
  • Linux Shell中的$#、$@、$0

    在Linux Shell脚本中,$0用来表示要执行的shell脚本名称。$1,$2用来表示传入到脚本中对应位置的参数,例如:

    Tyan
  • Python中is和==的区别

    Python中对象包含的三个基本要素,分别是:id(身份标识)、type(数据类型)和value(值)。

    Rare0716
  • 变量类型测试函数的使用:八、剩余函数的使用方法

    讲完PHP变量类型测试函数【is_resource】的用法,今天来讲讲PHP变量类型测试函数【is_null、is_scalar、is_numeric、is_c...

    大脸猫
  • 面试题40(关于运算符的优先级以及字符串的拼接的理解)

    下面这三条语句? ---- System.out.println(“is ”+ 100 + 5); System.out.println(100 + 5 +“...

    Java学习
  • PHP数组is_*()对比和解析

    如is_null,is_object,is_array,is_string,is_resource,is_bool,is_long,is_float 今天补充一...

    php007
  • ELK学习笔记之Kibana查询和使用说明

    当您第一次连接到Kibana 4时,您将进入发现页面。 默认情况下,此页面将显示您的所有ELK的最近接收的日志。 在这里,你可以根据搜索查询通过筛选,找到特定的...

    Jetpropelledsnake21
  • trait能力在PHP中的使用

    相信大家对trait已经不陌生了,早在5.4时,trait就已经出现在了PHP的新特性中。当然,本身trait也是特性的意思,但这个特性的主要能力就是为了代码的...

    硬核项目经理
  • PyTorch实现的“MixHop

    https://github.com/benedekrozemberczki/MixHop-and-N-GCN

    代码医生工作室

扫码关注云+社区

领取腾讯云代金券