16_Shell好用工具:sed

16_Shell好用工具:sed

零、语法解析

sed [选项参数] [模式匹配/sed命令] 文件

命令 说明
a add,新增
i insert,新增
c change,修改
s substitute,替换
d delete,删除
p print, 打印 通常与 -n 连用

一、增(新增行)

1.1、【添加数据】指定行号后添加数据

#第3行后添加一行
sed '3aHello World.' sed.txt

在这里插入图片描述

1.2、【添加数据】指定行号前添加数据

#第3行前添加一行
sed '3iHello World.' sed.txt

在这里插入图片描述

1.3、【添加数据】指定内容行前后添加数据(前:i 后:a)

#包含Holen的行之前添加一行
sed '/Holen/iHello World.' sed.txt

#包含Holen的行之后添加一行
sed '/Holen/aHello World.' sed.txt

在这里插入图片描述

1.4、【添加数据】最后一行前后添加数据(前:i 后:a)

#最后一行前添加一行
sed '$iHello World.' sed.txt

#最后一行后添加一行
sed '$aHello World.' sed.txt

在这里插入图片描述

二、删(删除行)

2.1、【删除数据】删除指定行号数据

#删除第二行数据
sed '2d' sed.txt

在这里插入图片描述

2.2、【删除数据】删除指定间隔行数据

#从第一行开始,每隔两行删除行数据(删除奇数行数据 1、3、5...)
sed '1~2d' sed.txt

在这里插入图片描述

2.3、【删除数据】删除指定范围行数据

#删除第1到第5行数据
sed '1,5d' sed.txt

在这里插入图片描述

2.4、【删除数据】删除数据时取反

#删除第1到第5行数据 取反
sed '1,5!d' sed.txt

在这里插入图片描述

2.5、【删除数据】删除最后一行

#删除最后一行
sed '$d' sed.txt

在这里插入图片描述

2.6、【删除数据】删除指定内容行

#删除包含Holen的行
sed '/Holen/d' sed.txt

在这里插入图片描述

2.7、【删除数据】删除指定内容行到最后一行

#删除包含Holen的行到最后一行,全删
sed '/Holen/,$d' sed.txt

在这里插入图片描述

2.8、【删除数据】删除指定内容行及下一行

#删除包含Holen的行及下一行
sed '/Holen/,+1d' sed.txt

在这里插入图片描述

2.9、【删除数据】删除不匹配行

#删除不包含Holen或者Happy的行
sed '/Holen\|Happy/!d' sed.txt

在这里插入图片描述

三、改(修改-整行 替换-行内数据)

3.1、【修改数据-整行】修改指定行

#修改第一行为"Hello World"
sed '1cHello World.' sed.txt

在这里插入图片描述

3.2、【修改数据-整行】修改最后一行

#修改最后一行为"Hello World"
sed '$cHello World.' sed.txt

在这里插入图片描述

3.3、【修改数据-整行】指定内容行修改

#将包含Holen的行整体修改为China
sed '/Holen/cChina.' sed.txt

在这里插入图片描述

3.4、【替换数据-行内数据】每行指定内容数据替换

#替换每行第1个出现的Holen为Ylia
sed 's/Holen/Ylia/' sed.txt

#替换每行第2个出现的Holen为Ylia
sed 's/Holen/Ylia/2' sed.txt

#替换每行所有的Holen为Ylia
sed 's/Holen/Ylia/g' sed.txt

在这里插入图片描述

3.5、【替换数据-行内数据】每行指定内容数据替换并写入文件

#替换每行所有的Holen为Ylia 并 写入文件 sed_new.txt
sed 's/Holen/Ylia/gw sed_new.txt' sed.txt

在这里插入图片描述

3.6、【替换数据-行内数据】正则表达式数据替换

#匹配包含H的行,并替换o后面内容为空
sed '/H/s/o*//g' sed.txt

在这里插入图片描述

3.7、【替换数据-行内数据】每行末尾添加数据

#每行末尾添加 CH
sed '/s/$/& CH' sed.txt

#这样也可以
sed 's/$/ CH/' sed.txt

在这里插入图片描述

3.8、【替换数据-行内数据】每行行首添加数据

#每行行首添加 #
sed 's/^/# /' sed.txt

在这里插入图片描述

四、查(略)

不推荐,建议使用grep,不过多深究

五、其他重要命令

选项参数 说明
-i 修改内容同步更新源文件
-e 多命令执行

5.1、多命令执行

#删除第一行同时最后一行新增“Hi Holen”
#写法一:
sed -e '1d' -e '$aHi Holen' sed.txt

#写法二:
sed '1d;$aHi Holen' sed.txt

在这里插入图片描述

5.2、源文件修改

#第三行后添加Hello World 同时写入源文件
sed -i '3aHello world' sed.txt

在这里插入图片描述

相关推荐

  1. shell-sed、awk、grep三剑客常场景

    2024-07-16 22:00:02       17 阅读
  2. shell 流编辑器 sed

    2024-07-16 22:00:02       36 阅读
  3. Shellsed

    2024-07-16 22:00:02       46 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-16 22:00:02       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-16 22:00:02       72 阅读
  3. 在Django里面运行非项目文件

    2024-07-16 22:00:02       58 阅读
  4. Python语言-面向对象

    2024-07-16 22:00:02       69 阅读

热门阅读

  1. 记录一次Android推流、录像踩坑过程

    2024-07-16 22:00:02       19 阅读
  2. LINUX:懒汉单例模式线程池

    2024-07-16 22:00:02       19 阅读
  3. flask-login会话保持实现

    2024-07-16 22:00:02       22 阅读
  4. C调用C++接口

    2024-07-16 22:00:02       22 阅读
  5. 年轻人如何克服焦虑

    2024-07-16 22:00:02       18 阅读
  6. 设计模式10-抽象工厂

    2024-07-16 22:00:02       17 阅读
  7. C++中的常量详解

    2024-07-16 22:00:02       17 阅读