SED

  • 一、sed编辑器
    • 1.2sed简介
    • 1.3sed工作流程
    • 1.4sed命令格式
    • 1.5常用选项
    • 1.6常用操作
  • 二、sed实验
    • 2.1打印内容
    • 2.2删除行
    • 2.3替换
    • 2.4插入

一、sed编辑器

1.2sed简介

  • sed是一种流编辑器,流编辑器会在编辑器处理数据之前基于预先提供的一组规则来编辑数据流。
  • sed编辑器可以根据命令来处理数据流中的数据,这些命令要么从命令行中输入,要么存储在一个命令文本文件中。

1.3sed工作流程

  • 读取:sed 从输入流(文件、管道、标准输入)中读取一行内容并存储到临时的缓冲区中(又称模式空间,pattern space)。
  • 执行:默认情况下,所有的sed 命令都在模式空间中顺序地执行,除非指定了行的地址,否则sed 命令 将会在所有的行上依次执行。
  • 显示:发送修改后的内容到输出流。在发送数据后,模式空间将会被清空。在所有的文件内容都被处理完成之前,上述过程将重复执行,直至所有内

1.4sed命令格式

sed -d '操作符' 文件1 文件2
sed -n -e '操作符' 文件1 文件2
sed -f 脚本文件 文件1 文件2
sed -i -e '操作符' 文件1 文件2
sed -e 'n {
操作1
操作2
...
}' 文件1 文件2 ...

1.5常用选项

选项 功能
-e 表示用指定目录来处理输入的文本文件,只有一个操作命令时可省略,一般在执行多个操作命令使用
-f 表示用指定的脚本文件来处理输入的文本文件
-h 显示帮助
-n 禁止sed编辑器输入,但是可以与p命令一起使用完输出
-i 直接修改目标文本文件

1.6常用操作

操作符号 功能
s 替换,替换指定字符
d 删除,删除选定的行
a 增加,在当前行下面增加一行指定内容
i 插入,在选定行上面插入一行指定内容
c 替换,将选定行替换位指定内容
y 字符转换,转换前后的字符长度必须相同
p 打印,如果同时指定行,表示打印指定行;如果不指定行则表示打印所有内容;如果有非打印字符,则以ASCII码输出。其通常与“-n”选项一起使用
= 打印行号
l 打印数据流中的文本和不可打印的ASCLL字符(比如结束符$、制表符\t)

二、sed实验

2.1打印内容

格式

sed -n -e 'p' 【文件】#打印匹配的文件内容
sed -n -e '=' 【文件】#打印行号
sed -n -e 'l' 【文件】#打印数据流中的文本何不可打印的ASCLL字符
sed -n -e '=;p'【文件】#打印文件内容和行号
sed -n -e '=' -e 'p' 【文件】#功能同上
sed -n '
=
p
' 【文件】 功能同上


2.2删除行

格式

sed 'd' 【文件】#删除文件
sed '3d' 【文件】#删除第三行
sed '2,4d' 【文件】#删除2到4行
sed '$d' 【文件】#删除最后一行
sed '/^$/d' 【文件】#删除空行
sed '/1/!d' 【文件】#除了含有1的行,其它都删除
sed '/2/,/3/d' 【文件】#从含有2的行开始删除,到含有3的行结束,以此循环


2.3替换

格式

  • 行范围 s/旧字符串/新字符串/替换标记

替换标记

标记 功能
数字 表明新字符串将替换第几处匹配的地方
g 表明新字符串将会替换所有匹配的地方
p 打印与替换命令匹配的行,与-n一起使用
w 【文件】 将替换的结果写道文件中去





2.4插入

操作符 功能
H 表示复制到剪切板
G 表示粘贴掉指定行后面

格式

sed '/45/cAB' 1.txt #将45替换成AB
sed 'y/45/AB/' 1.txt#将4所有的4替换成A,5替换成B
sed '1,3a AB' 1.txt#在1到3行的下面增加ABC
sed '1,3i AB' 1.txt#在1到3行的上面增加ABC
sed '$r 123.txt' 1.txt #在1.txt文件末尾读取123.txt文件
sed '/root/{H;d};$G' /etc/passwd #将包含root的行粘贴到最后一行


【文本三剑客】SED相关推荐

  1. linux sed后 保存文本,实例详解linux文本三剑客--sed

    sed 简介 sed是一种流编辑器,以行为单位进行文本处理,可以将数据行进行替换.删除.新增.选取等操作. sed [options] 'command' file(s) 基本命令 匹配内容 $ se ...

  2. Linux文本三剑客

    Linux下文本三剑客 正则表达式 文本三剑客Grep 文本三剑客Sed 文本三剑客Awk awk.grep.sed是linux操作文本的三大利器,合称文本三剑客,也是必须掌握的linux命令之一.三 ...

  3. sed 插入多行_文本三剑客之sed

    文本三剑客之sed sed介绍 sed 简介 sed 流编辑器.sed的全称:Stream EDitor 简称sed 是个流编辑器,sed是一个行编辑器.首先它是个流编辑器是实现文本流编辑的,所谓行编 ...

  4. Linux文本三剑客(grep、sed、awk)

    目录 grep 1.什么是grep和rgrep? 2.使用grep 2.1.命令格式 2.2.命令功能 2.3.命令参数 3.实战演示 sed 1.认识sed 2.使用sed 2.1.命令格式 2.2 ...

  5. Linux文本三剑客--grep、sed、awk

    Linux文本三剑客–grep.sed.awk 文章目录 Linux文本三剑客--grep.sed.awk 1.grep 1.1什么是grep 1.2使用grep 命令格式 命令参数 基本正则表表达式 ...

  6. 【Shell牛客刷题系列】SHELL1 统计文件的行数:学习wc命令和文本三剑客awk、grep、sed命令

    该系列是基于牛客Shell题库,针对具体题目进行查漏补缺,学习相应的命令. 刷题链接:牛客题霸-Shell篇. 该系列文章都放到专栏下,专栏链接为:<专栏:Linux>.欢迎关注专栏~ 本 ...

  7. linux 匹配文本中的ip,linux文本三剑客匹配网卡IP地址大PK(CentOS 7系统)

    运维工程师在做配置的过程中很多时候都需要去获取目标服务器网卡上的IP地址,那究竟用什么方式获取更便捷了,博主今天就带大家使用linux文本三剑客分别获取一下网卡的IP地址,最后我们再来对比一下. 实验 ...

  8. llinux文本三剑客之grep、egrep及相应的正则表达式和用法

    Linux文本三剑客之grep族以及相应的正则表达式 Grep族是什么? Grep族是linux学习中搜索文本的重要工具,它基于使用正则表达式来快速简洁的搜索你想要查看的文本.是搜索文本的不二之选 什 ...

  9. Linux文本三剑客之一——awk详解(1)——awk看这两篇就够啦~PS:文末有练习,来练练手吧

    shell编程三剑客 grep --> egrep --> 文本过滤 查询 awk 文本截取 sed  文本的替换和修改 目录 awk awk也可以做小数运算 awk命令简要处理流程 aw ...

  10. 文本三剑客之AWK详解

    文本三剑客之AWK awk简介 AWK是一种优良的文本处理工具.它不仅是 Linux中也是任何环境中现有的功能最强大的数据处理引擎之一.这种编程及数据操作语言(其名称得自于它的创始人 Alfred A ...

最新文章

  1. 解析Objective-C中多态、动态类型和动态绑定
  2. linux popd 命令,在Linux系统中的Pushd命令与Popd命令,教你这两个命令的基本用法...
  3. 1.3 Hive架构原理
  4. wordpress 添加小工具分类
  5. kubernetes集群使用GPU及安装kubeflow1.0.RC操作步骤
  6. JSP-BUG-The type java.xx.xx cannot be resolved
  7. Linux运行级别介绍
  8. linux添加计划任务(转载)
  9. 【ubuntu操作系统入门】Ubuntu常用命令大全一
  10. python常用函数使用
  11. 基于C语言及51单片机的PID控制电机调速详解(附详细代码及Protsus仿真)
  12. Mysql查询去空格方法汇总
  13. 高斯分布4——联合概率分布
  14. 整理归纳:《一课经济学》—— 只见树木不见森林
  15. K210(SiPEED MaixBit)MicroPython使用参考(一、软硬件环境)
  16. 我们如何学习:学会学习再学习
  17. 华为机试:查找众数及中位数
  18. 机器学习:几种分类识别问题
  19. 以太网实习_实习 | 2018年春季实习面试问题整理
  20. C语言求:歌德巴赫猜想

热门文章

  1. 记一次自己尴尬的飞机经历
  2. win11 Valorant 9003问题解决 无法开启安全模式问题解决
  3. java创建邮箱目录,Javamail新建邮件后,如何保存进已发送或草稿箱
  4. 小技巧1:如何给pip install进行换源
  5. WPS PPT 公式编辑 希腊字母不显示及公式编辑器中运算符号、希腊字母不显示
  6. 微信测试账号(验证成为开发者)总是配置失败
  7. Netty Bootstrapping
  8. 进程(线程)间同步互斥问题(四) 三个烟鬼问题
  9. 湖南大学计算机系纪学斌,王东-湖大信息科学与工程学院
  10. matlab温室,基于MATLAB的温室大棚温度控制系统研究