sed命令实现匹配行下一行的替换

操作文件为ABC.txt,文件内容如下:

Hello,World!
My name is LiLei

现在需求是我要把Hello,World!的下一行的中的LiLei替换为HanMeimei

在LINUX中可以用下面命令:

sed -i '/Hello,World\!/{n;s/LiLei/HanMeimei/;}' ABC.txt

在Mac中需要做修改,Mac上默认提供修改时的备份机制:

  • 如果目标文件不需要备份
sed -i "" '/Hello,World/{n;s/LiLei/HanMeimei/;}' ABC.txt
  • 如果目标文件需要备份
sed -i ".bak" '/Hello,World/{n;s/LiLei/HanMeimei/;}' ABC.txt

命令解释:

sed [-nefr] [动作]
  • -i: 直接修改读取的文件内容,而不是输出到终端。
  • n: 移动到匹配行的下一行。
  • s: 替换。

点击数:22

发表评论