Linux sed命令

更多资料下载、嵌入式视频教程,点击淘宝店:wanglitao.taobao.com

在Linux环境下编辑文本文件,可以使用gedit,或者vim,两者都需要打开文件,然后再编辑,最后保存退出。
sed(Stream EDitor,简称sed)命令提供了另外一种编辑文本文件的方式:在交互环境下,使用命令行(脚本)的形式,不需要打开文件,就可以进行增、删、查、改的各种操作。sed还支持正则表达式,可以让你对文本的处理更加灵活和高效。

Linux sed命令的基本格式如下:

sed [OPTION] [动作] 文本文件名

选项:

  • -n :使用安静(silent)模式。屏蔽输出,只有用p命令显示指定要输出才会进行输出。
  • -e :多点编辑,支持1个sed实现多个动作。
  • -f :将sed的动作由脚本文件来指定,适合比较复杂的处理动作。
  • -r :支持扩展的正则表达式语法。
  • -i :直接修改文件内容。

动作:
格式:[address]function
其中address:寻址,可以是数字寻址,也可以是文本寻址。
function:

  • a:指定内容之后的行插入,格式:’行号 a 要插入的字符串’
  • i:在指定内容之前的行插入,格式:’行号 i 要插入的字符串’
  • c:覆盖,覆盖指定内容。格式:’行号 c 新的字符串’
  • p:打印,搭配正则,打印符合模式的那一行。格式:’[address]/xxx/p’
  • s:取代,搭配正则,先匹配符合模式的内容,然后将这些匹配出来的内容用新的值替换。
    格式:’[address]s/pattern/replacement/flag’
  • =:行号,搭配正则,可以查找符合模式的内容所在的行号。
sed用法举例:
# cat main.c 
hello
# sed -e 1a\world main.c 
hello
world
# sed -e 1i\world main.c 
world
hello
《Linux三剑客》视频教程,从零开始快速掌握Linux开发常用的工具:Git、Makefile、vim、autotools、debug,免费赠送C语言视频教程,C语言项目实战:学生成绩管理系统。详情请点击淘宝链接:Linux三剑客