sed编辑器

10 篇文章 0 订阅

1. sed编辑器简介

sed编辑器被称作流编辑器(stream editor),用作批处理文本文件,能够极大的简化需要进行的数据处理任务。sed编辑器可以根据命令(命令行/脚本)来处理数据流中的数据,将会执行下列操作:
sed编辑器图示

  1. 一次从输入中读取一行数据;
  2. 根据所提供的编辑器命令匹配数据;
  3. 按照命令修改流中的数据;
  4. 将新的数据输出;

2. sed之替换

2.1 替换文本

替换的关键命令是s(substitute)

sed 's/A/B/g' data.txt

s (substitute)用作行中的替换;
g (global)用作全局替换(默认情况下只替换每行出现的第一个);
/ 用作分隔符,也可以使用其他符号,如! : ; 等;
''单引号在替换变量时可以更换为双引号 ""

2.2 多次替换

sed 's/A/B/g;s/C/D/g' data.txt

只需要用;隔开多处匹配即可。

2.3 直接替换文本中的内容

以上以替换均为标准输出,但很多情况下我们想直接修改原文件,不熟悉操作的情况下,请务必将原文件备份后再操作!!!或者只需要将输出的结果重定向至新文件即可。

sed -i  's/A/B/g' data.txt

直接使用-i 选项即可修改原文件。

2.4 替换特定行

  1. 只修改第二行的所有A为B
sed '2s/A/B/g' data.txt
  1. 修改2至5行的所有A为B
sed '2,5s/A/B/g' data.txt
  1. 修改第二行至文末的所有A为B
sed '2,$s/A/B/g' data.txt

3. sed之删除

删除的关键命令是d(delete)

3.1 显示行号

在使用删除命令之前,我们大多数的应用场景都会需要知道匹配关键字的行号,可以通过以下方式显示行号:

  1. sed命令显示行号
sed '=' data.txt
  1. cat命令的-n选项显示行号
cat -n data.txt
  1. vivim中显示行号
:set number
  1. less命令的-N选项显示行号
less -N data.txt

3.2 删除特定行

  1. 删除第二行
sed '2d' data.txt
  1. 删除2至5行
sed '2,5d' data.txt
  1. 删除第二行至文末
sed '2,$d' data.txt
  1. 删除所有含有A的行
sed '/A/d' data.txt

4. sed之添加

添加的关键命令是i (insert)和a(append),后接反斜杠\

  1. 在第二行前加入一行“ABC"
sed '2i\ABC' data.txt
  1. 在第二行后加入一行“ABC"
sed '2a\ABC' data.txt
  1. 文本开头加入一行“ABC"
sed '1i\ABC' data.txt
  1. 本文末尾加入一行“ABC"
sed '$a\ABC' data.txt
  1. 在每行开头添加子字符串:ABC (其他方法)
sed -i 's/^/ABC&/g' file.txt
  1. 在每个行尾添加字符串:DEF(其他方法)
sed -i 's/$/&DEF/g' file.txt

5. sed之修改整行

修改行的关键命令是c(change),后接反斜杠\

  1. 修改第二行为“ABC"
sed '2c\ABC' data.txt
  1. 修改含有”DEF"行为”ABC"
sed '/DEF/c\ABC' data.txt
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值