玩转Sed

sed

简介:sed 是 stream editor 的缩写,中文称之为“流编辑器”,命令是面向“行”进行处理的,每一次处理一行内容sed 会把要处理的行存储在缓冲区中,接着用 sed 命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。这个缓冲区被称为“模式空间”(pattern space)

使用方式:sed [options] [script] [file_name]

sed很多人都说很难学习,因为分门别类就去掌握,我们主要从以下三个方面去掌握,明白下面两个概念,就能清楚掌握Sed

  • options 其实说,你们操作打印到shell中,还是写入文本中
  • scprit 要执行的操作,新增、删除、替换,但是首先要明确执行的范围就是scope,特殊注意 替换 操作,在行操作的匹配范围就OK
options 执行的动作
optionsdesc
就默认-e ,执行后面script脚本,并将结果输出到标准输出,默认shell
-n取消默认空间,及不打印到标准输出
-i[扩展名], --in-place[=扩展名]直接修改文件(如果指定扩展名就备份文件)
scprit 有三个scope、action、line_scope,
  • 一般以包含在引号中,单双引号都可以,‘scope s/target_txt/replace_txt/line_scope’ OR “scope s/target_txt/replace_txt/line_scope
  • 注意一点,scprit中的分隔符可以使用"“、”/“、”#",当txt有分隔符时,可以替换使用
scope 表示操作范围,文本中行数
scopedesc
表示整个文件
n表示第n行
{n,m}表示第n到第m行,闭区间
{n,m}!标识在非n到第m行
action 表示匹配后动作
actiondescdemo
ascope范围内,每一行下面插入目标文档sed ‘scope a target_txt’ filename
iscope范围内,每一行上面插入目标文档sed ‘scope i target_txt’ filename
cscope范围内的所有行替换为目标文本sed ‘scope c/target_txt’ filename
d删除scope范围内行sed ‘scoped’ filename
p打印scope范围内行,一般与-n同时使用sed -n ‘scope p’ filename
sscope范围内,替换target_txt为replace_txtsed ‘scope s/target_txt/replace_txt/line_scope’ filename
r inputfile将inputfile中内容追加scope范围内所有filename中行后sed ‘scope r inputfile’ filename
w outfie将filename中scope范围内所有内容,覆盖写入到outfiesed ‘scope w outfile’ filename
line_scope 标志位,标识搜索范围
line_scopedesc
替换行中第一个匹配目标
g替换行中所有的匹配目标
p打印匹配行
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值