每天三分钟搞定linux shell脚本(37) sed编辑器来了!!!指定一定范围的行进行处理

sed指定一定范围的行进行处理

在这里插入图片描述
使用sed指令的时候,默认会把整个文件的所有行都依次取出来进行匹配,如果想要指定哪些行进行处理的话可以使用以下几种方法。

1 指定数字过滤行

sed把文本的第一行编号为1,以此类推,最后一行用$表示,可以单行进行操作或者对一定范围的行进行操作,比如待处理的文件为testfile,内容如下:

liao ning wei shi, hu nan wei shi
jiang xi wei shi, zhe jiang wei shi
jiang su wei shi, ning xia wei shi,
shan dong wei shi,xi zang wei shi,
si chuan wei shi,chong qing wei shi,
jiang xi wei shi,an hui wei shi

1.1 单行操作

比如只把第二行的wei字符串换成youku字符串,输入如下:

sed '2s/wei/youku/' testfile

运行后结果为:

liao ning wei shi, hu nan wei shi
jiang xi youku shi, zhe jiang wei shi
jiang su wei shi, ning xia wei shi,
shan dong wei shi,xi zang wei shi,
si chuan wei shi,chong qing wei shi,
jiang xi wei shi,an hui wei shi

1.2 指定多行

比如把从第二行到第四行的内容第一次出现的为改成youku,输入:

sed '2,4s/wei/youku/' testfile

运行后结果如下:

liao ning wei shi, hu nan wei shi
jiang xi youku shi, zhe jiang wei shi
jiang su youku shi, ning xia wei shi,
shan dong youku shi,xi zang wei shi,
si chuan wei shi,chong qing wei shi,
jiang xi wei shi,an hui wei shi

1.3 从指定行一直到最后一行

美元符号指定到最后一行,比如把从第3行到最后一行内容中所有的wei都改成you ku,输入如下:

sed '3,$s/wei/you ku/g' testfile

运行后结果如下:

liao ning wei shi, hu nan wei shi
jiang xi wei shi, zhe jiang wei shi
jiang su you ku shi, ning xia you ku shi,
shan dong you ku shi,xi zang you ku shi,
si chuan you ku shi,chong qing you ku shi,
jiang xi you ku shi,an hui you ku shi

1.4 使用文本过滤行

使用文本过滤可以过滤出只包含目标字符串的行进行处理,这里的优势在于目标字符串可以使用正则表达式[正则表达式后续详谈]。假如要把包含jiang xi这个字符串的行中的所有wei改成you ku,输入如下:

sed '/jiang xi/s/wei/you ku/' testfile

运行后结果为:

liao ning wei shi, hu nan wei shi
jiang xi you ku shi, zhe jiang you ku shi
jiang su wei shi, ning xia wei shi,
shan dong wei shi,xi zang wei shi,
si chuan wei shi,chong qing wei shi,
jiang xi you ku shi,an hui you ku shi

多行模式也可以与之前的命令组合,比如之前提到的-e用于多个命令,输入:

sed -e '2,$s/wei/youku/g;3,$s/shi/tengxu/g' testfile

运行后结果为:

liao ning wei shi, hu nan wei shi
jiang xi youku shi, zhe jiang youku shi
jiang su youku tengxu, ning xia youku tengxu,
shan dong youku tengxu,xi zang youku tengxu,
si chuan youku tengxu,chong qing youku tengxu,
jiang xi youku tengxu,an hui youku tengxu
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

涤除而玄览

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值