Linux shell编程之sed命令之二

本文介绍sed编辑器的基础用法,包括如何通过行数值及模式匹配来定位并修改文本文件中的特定行。通过实例演示了如何实现单行或多行替换,并结合实际应用场景展示了sed的强大功能。

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

一、使用地址

默认情况下,在sed编辑器中使用的命令应用于所有文本行,如果仅想将命令应用于某一特定的文本或一组文本行,则必须使用行寻址。
在sed编辑器中,有两种寻址形式:
(1)行的数值范围
(2)筛选的文本模式。
在命令中指定的地址的格式如下:

[address] command
 也可以将多个命令应用于一个地址
 address{
   command1
   command2
   command3
 }
1.数字寻址
可以用数字指定某一行或一个行区间
通过数字指定只处理指定行
$ cat test.txt 
i have an apple
i have a  pen
i have a pear
$ sed '2s/i have/he has/' test.txt 
i have an apple
he has a  pen
i have a pear
通过数字指定只处理指定区间的行

$ cat test.txt 
i have an apple
i have a  pen
i have a pear
$ sed '1,2s/i have/he has/' test.txt 
he has an apple
he has a  pen
i have a pear
可以用'$'表示最后一行。
$ cat test.txt 
i have an apple
i have a  pen
i have a pear
$ sed '1,$s/i have/he has/' test.txt 
he has an apple
he has a  pen
he has a pear
二、使用模式过滤器
当文本行能够匹配指定模式时才处理。
命令格式:
/pattern/command
sed编辑器支持pattern为正则表达式。
例如如果想为用户名为jie的用户更改默认的shell,可以使用sed命令:$ sed '/jie/s/bash/sh' /etc/passwd
$ cat test.txt 
i have an apple
i have a  pen
i have a pear
$ sed '/an/s/i/you/' test.txt 
you have an apple
i have a  pen
i have a pear
三、使用组合命令
$ cat test.txt 
i have an apple
i have a  pen
i have a pear
$ sed '1,3{s/i/you/
s/apple/orange/}' test.txt 
you have an orange
you have a  pen
you have a pear
至此,sed命令的替换命令基本学习完毕,接下来学习其它sed命令。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值