sed就用不着多做介绍了,非常强大的流编辑器,以行作为处理单位。另外还有一个神器awk可以非常方便的处理列 。平常可能觉得用用cat,more,tail,vi也差不多,但是如果遇到非常巨大的log文件,sed就会比较方便了。高级(我能说差点打成搞基了么。。。对这个世界绝望了。。)的用法基本也用不上,就记录下基本的命令什么的。。
*准备示例文件*
```
$cat passwd
1a
2b
3c
4d
5e
6f
```
基本用法
--
* 显示第2行
```
$sed -n '2p' passwd
2b
```
* 显示1到3行
```
$sed -n '1,3p' passwd
1a
2b
3c
```
* 匹配模式
```
$sed -n '/c/'p passwd
3c
```
* 行号加模式匹配
>以下例子表示从第二行开始匹配到有c的行结束;如果如果第二行就有c,或者一直没有匹配到带c的行,则从第二行输出到行尾;
```
$sed -n '2,/c/'p passwd
2b
3c
```
* 打印匹配行行号
```
$sed -n '/b/=' passwd
2
```
* 显示整个文件
```
$sed -n '1,$p' passwd
1a
2b
3c
4d
5e
6f
```
删除文本
--
* 删除行
```
$sed '1d' passwd #删除第一行
$sed '1,3d' passwd #删除第一行到第三行
$sed '2,$d' passwd #第二行到末尾所有行
$sed '$d' passwd #删除passwd文件的最后一行
```
* 删除匹配行
```
$sed '/b/d' passwd
$sed -n '/BEGIN/,/END/d' passwd
```
替换文本
--
```
格式:[address[,address]]s/pattern-find/replacement-pattern/[g,p,w,n]
n 1到512之间的一个数字,表示对本模式中指定模式第n次出现的情况进行替换
g 对模式空间所有出现的情况进行全局更改【缺省只替换首次出现的模式 】
p 打印模式空间的内容
w file
```
* 全局替换
```
$sed 's/b/x/g' passwd #将b替换成x
```
附
[sed 简明教程][1]
[1]: http://coolshell.cn/articles/9104.html
作者:sylarinfo
出处:博客园sylarinfo的技术博客--http://www.cnblogs.com/sylarinfo/
您的支持是对博主最大的鼓励,感谢您的认真阅读。
本文如未在开头表明转载,则版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。