Linux命令——流编辑器sed

本文介绍了Linux中的流编辑器sed的使用,包括命令格式、正则表达式支持、定址方式、常见命令选项及其示例。通过sed,你可以方便地对文本进行查找、替换、删除等操作,实现对文件内容的非交互式编辑。例如,使用`s#模式#替换#`进行模式替换,通过定址选择要编辑的行,以及利用 `-e` 选项进行多重编辑。
摘要由CSDN通过智能技术生成

常规用法

sed 是一种不用交互的流编辑器

命令格式

sed [options] ‘command’ file(s)
sed [options] -f scriptfile file(s)
sed和grep不一样,不管是否找到指定的模式,它的退出状态都是0,只有当命令存在语法错误时。sed的退出状态才是非0.

支持正则表达式

sed支持正则表达式,模式是括在斜杠间
要支持扩展元字符,使用sed -r

# n为静默输出,p为打印,/^root/为正则表达式,匹配以root开头的行
sed -rn '/^root/p' passwd
# 将passwd文件中的root全部替换成alice,s表示替换,g表示全局,i表示忽略大小写
sed -r 's/root/alice/gi' passwd
# 查找带有root的行进行删除,d表示删除
sed -r '/root/d' passwd
# 查找带有root的行进行删除并更新到原文件,-i是将改动变更到原文件
sed -ri '/root/d' passwd
  • #替换/
    当仅为查找是可以替换为 sed -r ‘#root#d’ passwd,第一个#需要加转义
    当为查找替换时sed -r ‘s#root#alice#gi’ passwd,不需要加转义

sed定址

定址是用于决定对哪些进行编辑。形式可以是数字、正则表达式或二者结合。如果没有指定址,sed将处理输入文件中的所有行。

  • 数字
sed -r '3d' passwd		# 删除第三行
sed -r '1,3d' passwd	# 删除第一行到第三行
sed -r '3,$d' passwd	# 删除第三行到第最后一行
sed -r '1~2d' /etc/passwd	#删除所有奇数行
sed -r '0~2d' /etc/passwd	#删除所有偶数行
  • 正则
sed -
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值