首页 > 代码库 > linux sed 命令的用法
linux sed 命令的用法
原文 http://blog.chinaunix.net/uid-24426415-id-77244.html
-------------------------------------------------------------------------------
初级入门
sed工具是一种非交互式的流编辑器。默认情况下只会影响输出,不会改变输入。sed处理文档时是以行为单位的。功能有:删除、查找替换、添加、插入、从其他文件读取。
其实这些功能看起来都可以用vim等编辑器来实现。那么,为什么要有sed呢?
主要应用场景
- 太过庞大的文本
- 有规律的文本修改
sed的命令格式
sed [option] command [file ...]
- 1
- 1
删除
#删除第一行
sed ‘1d‘ file
- 1
- 2
- 1
- 2
注意,这只影响到输出流。如果想保存的话
sed -i ‘1d‘ filename
- 1
- 1
或者
#输出到新文件
sed ‘1d‘>newfilename
- 1
- 2
- 1
- 2
其中1d命令中,我们把1称为地址,这里指代的是第一行。
删除第一行到最后一行
sed ‘1,$d‘ filename
- 1
- 1
删除包含了某个pattern的行
sed ‘/pattern/d‘ filename
#例如
sed ‘/^$/d‘ filename
- 1
- 2
- 3
- 1
- 2
- 3
查找替换
#普通替换 将每行的第一个line替换成LINE
sed ‘s/line/LINE/‘ filename
- 1
- 2
- 1
- 2
sed ‘s/line/LINE/[number]
表示对这一行来说至多替换number个line,如果number为g,则全部替换
字符转换
现在还没有见过重要的用法
- 1
- 1
插入文本
#在第二行前插入一行
sed ‘2 i insert_context‘ filename
#在第二行之后插入一行
sed ‘2 a insert_context‘ filename
#在匹配的行之前插入一行
sed ‘/pattern/i\new_word‘ filename
- 1
- 2
- 3
- 4
- 5
- 6
- 1
- 2
- 3
- 4
- 5
- 6
打印
#只打印出第一行 ,不加n的话会默认输出每一行
sed -n ‘1p‘ filename
#只打印出被修改的一行
sed -n ‘s/the/THE/p‘ filename
linux sed 命令的用法
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。