Linux——sed实践

sed是一个流编辑器,可以有效处理一行信息,根据需求输出内容。当然输入多行也可以一次处理多行。

需要注意的是sed操作并不会对原来的内容进行改变,对原文件增删改是临时的。

sed常用内部命令:

a   在匹配后面添加
i   在匹配前面添加
p   打印
d   删除
s   查找替换
c   更改
y   转换   N D P 

这些命令结合正则表达式可以起到很好的信息处理效果。

 sed的一些提示符

数字 表示新文本替换的模式

g: 表示用新文本替换现有文本的全部实例

p: 表示打印原始的内容

w filename: 将替换的结果写入文件

针对下列文本内容,使用 sed 命令完成以下操作 

4000001476

4000000041

4000002754

4000000944

4000002549

(1)将文本内容中每行中的 400 替换为 800 显示,即输出如下:  8000001476 

8000000041 

8000002754 

8000000944 

8000002549 

                cat number.txt | sed -e 's/400/800/g'                

                        使用s(查找替换),并使用g提示符,查找替换所有的400,变为800 

(2) 使用正则表达式,将文本内容中每行的前三个数字,以小括号括起来显示, 即输出如下: 

(400)0001476

(400)0000041 

(400)0002754 

(400)0000944 

(400)0002549 

cat number.txt | sed -r 's/(^[0-9]{3})/(\1)/'

         匹配前三个数字,将其用括号扩出,可以在之后以(\1)的形式使用这块内容。可以有多块,按序以数字命名。

 (3)使用正则表达式,将文本内容中每行的中间三个数字前后增加“-”符号, 即输出如下: 

400-000-1476

400-000-0041 

400-000-2754 

400-000-0944 

400-000-2549 

cat number.txt | sed -r 's/(^[0-9]{3})([0-9]{4})/\1-\2-/'

        匹配前三个数字,再匹配四个数字,在每组之后加一个 - 。 

(4)​​​​​​​打印输出第3行到最后一行的内容,即输出:

4000002754

4000000944 

4000002549 

cat number.txt | sed -e '1,2d'

        这里只需要将前两行删去,就可以输出从第三行开始的内容。注意:删除并不会改变文件的原始内容。 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值