首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Shell编程-命令sed

一、sed的介绍

sed是一种包括所有UNIX平台的轻量级流编辑器,主要的作用是用来数据的提取、替换、删除、新增的命令。

有些朋友会说,之前不是学过编辑器vim吗?sed与vim两种有区别吗?

vim只能修改文件,但是vim不能修改命令的输出结果。要想修改必须先重定向存入文件(命令 &>> 文件)才可以。如下图:

但是sed不仅能修改文件,而且还能利用管道符接收数据进行修改。

总之,sed与vim最主要的区别:

1、直接修改命令的输出结果

2、利用管道符接收数据进行修改

日常使用当中,sed使用较少,最主要的应用场景还是在shell脚本编程当中。

二、sed命令的格式与选项

sed [选项] '[动作]' 文件名 //注意动作要用英文状态的单引号括起来

选项:

-n //只会把经过sed命令处理的行输出到屏幕

-e //对输入的数据应用多条sed命令进行编辑

-i //直接修改数据文件,而不是由屏幕输出。也就是说,如果不加-i选项,数据只是输出到屏幕上进行了改变,并不会影响文件中的原始数据。

动作:

三、常用示例

sed '2p' stu.txt //如果不加-n选项会多输出一行,而不是输出我想要的行。只要不加-i选项,所有的操作都不影响文件本身。

一般情况下,如果有"p"的动作,都需要加上-n选项。

------------------------------

利用管道符接收命令的结果

------------------------------

删除指定行范围的数据

sed '2,4d' stu.txt

------------------------------

追加数据

sed '1a 追加的数据' stu.txt //在第一行后面再追加一行数据。如果加入多行,使用"\"

------------------------------

插入数据

sed '1i hello' stu.txt //在第一行行前插入数据,同样支持多行

------------------------------

行替换

sed '1c 替换的行' stu.txt

------------------------------

字符串替换

sed '3s/zhang/z/g' 文件名 //把第3行的"zhang"改为"z",不加行数代表整篇文档。

------------------------------

修改到文件中,sed -i '3s/zhang/z/g' stu.txt 一般来说不推荐使用-i选项,sed主要的作用还是处理命令的输出。如果要修改请使用vim更加的简单方便而且出错的可能更小。

------------------------------

-e选项,允许多个条件同时应用。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20200108A0LGRB00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券