Neil Developer

sed 命令的简单用法

2014-08-29
Neil

我们在编写shell的时候, 可能需要修改一些配置文件, 比如需要修改mysql的配置文件, 在里面添加一些设置,修改一些或者删除一些.

怎么在shell中来编辑 文本文件呢.

在交互式环境下, 使用vi就可以了. 手动去修改. 但是在无人值守的shell中呢?

这里,就要用到 sed 命令了.

sed 的意思是: stream editor, 就是流式编辑器.

跟很多命令行工具(比如awk)一样, 他的功能及其强大, 当然用法和参数也及其复杂. 这里以极简的方式记录几种用法, 常用的编辑功能基本都能满足了.

sed 处理的基本方式

它的基本命令格式大概是这个样子的:

sed -options /patterns  file

它的意思是要处理 文件 file, 并且把处理结果直接回显到屏幕上. 所以通常需要配合重定向来保存处理结果.

它通常的工作样式是这样的:

sed -options  /patterns  file > saved.txt

当然, 可以不用重定向, 而直接指定保存文件名. 这里用到 -i 参数.
比如:
sed -i saved.txt -options /patterns file
这样在-i后面跟上一个文件名,就可以了.
如果 -i 后面没有跟文件名, 那么, 编辑结果将会保存到原文件.
sed -i -options /patters file
这样, 就是直接修改原文件了.
因为我通常都是想直接修改原文件的, 所以下面我都加上-i 参数了.

sed 的基本编辑操作.

替换 是我们最常用的操作.
他的命令样式为:

sed -i  "s/aaaa/bbbb"  file

这个命令就是把file中的所有字符串aaaa替换成bbbb, 并保存到原文件中(因为有-i 参数).

前插入 就是在某个特征字符串的前面插入内容.

命令为:

sed -i  "/aaa/i bbbb"  file  

这个命令是在aaa的前面插入一行bbbb, 注意中间的那个字母 i, 表示insert.

后插入 就是在某个特征字符串的后面插入内容.

命令为:

sed -i  "/aaa/a bbbb" file 

这个命令是在aaa的后面插入一样bbbb, 注意中间那个字母a, 表示append.


欢迎访问我的个人博客: http://byNeil.com


Comments

Content