前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Linux sed编辑器

Linux sed编辑器

作者头像
Tyan
发布2019-05-25 23:39:13
1.6K0
发布2019-05-25 23:39:13
举报
文章被收录于专栏:SnailTyanSnailTyan

版权声明:博客文章都是作者辛苦整理的,转载请注明出处,谢谢! https://cloud.tencent.com/developer/article/1434138

文章作者:Tyan

博客:noahsnail.com | CSDN | 简书

1. sed编辑器

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

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

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

2. 命令形式

sed命令的格式如下:

代码语言:javascript
复制
sed options script file

3. Demo

  • 基本处理
代码语言:javascript
复制
$ echo "This is a test" | sed 's/test/big test/'
This is a big test

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

代码语言:javascript
复制
# 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选项可以执行多个命令,多个命令用;隔开。

代码语言:javascript
复制
$ 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执行文件中的命令。

代码语言:javascript
复制
$ 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脚本编程
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017年01月11日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. sed编辑器
  • 2. 命令形式
  • 3. Demo
  • 参考文献
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档