sed编辑器

本文介绍了sed编辑器的基本概念及使用方法,包括如何通过命令行指定文本编辑规则、执行文本替换、筛选特定行、显示文件行号等常见操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值