sed编辑器

1、sed编辑器

sed编辑器也称为流编辑器 ,流编辑器是在编辑数据之前,预先指定数据的编辑规则,然后按照规则将数据输出到标准输出。在流编辑器的所有规则与输入的行匹配完毕以后,编辑器读取下一行,重复之前的规则。处理完所有数据后,流编辑器停止。因此sed是面向行的,并且sed并不会修改文件本身,除非使用重定向存储输出,所以sed是比较安全的。

 

sed支持在命令行直接指定文本编辑命令,具体格式如下:

sed [options] 'command' file(s)

command为具体的文本编辑命令,而file为输入的文件。

如将日志文件中的xxx替换成test输出:

sed `s/xxx/test/` test.log | head -10

s表示执行的是文本替换命令,将xxx替换成yahoo.

筛选日志中指定的行输出:

sed -n `2,6p` test.log

-n参数表示只输出指定的行,而`2,6p`表示选择的是第二行与第六行之间的行。

sed '/qq/d' test.log

d表示执行的是文本删除命令,将包含qq的行删除。

显示文件行号:

sed  '=' test.log

=命令用来显示文件行号

sed -e 'i\head' test.log | head -10

i命令用来在行首插入内容,i\head表示在每行的前面插入head字符串。

在行末追加文件:

sed -e 'a\end' test.log | head -10

a命令用来在行末追加内容,a\end表示在每一行的末尾追加end字符串。

sed -e '/google/c\hello' test.log | head -10

c命令用于对文本进行替换操作,查找/google/匹配的行,用hello对匹配的行进行替换。

可以将多个命令合并起来使用,使用分号分割:

sed-n '1,5p;1,5=' test.log

上面是两条命令,第一个是打印出第一行到第五行,第二条命令是将第一行到第五行每一行的行号打印出来。

如果编辑命令较为复杂,也支持将文本处理命令定义在文件中,具体的格式如下:

sed [option] -f scriptfile file(s)

比如下面的几条命令,将xxx替换成ttb,然后打印第一行到第六行,并且输出行号:

s/xxx/ttb

1,6p

1,6=

将这些内容放在文件testsed中,通过-f参数来指定文件,执行命令:

sed -n -f testsed test.log

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值