sed工作原理:

sed: Stream Editor。流编辑器 --- 属于行编辑工具

sed和vim一样都是文本编辑工具。

行编辑工具:一行一行处理文件内容

全屏编辑工具:一次性将文件内容加载到内存

sed工作流程:

sed工作逻辑:逐行处理内容

一次读取一行内容到模式空间(内存空间)进行处理。这个处理过程可以是输出,也可以是更改文件内容再写入文件等。由此反复处理,直到最后一行处理完成。

sed基本用法:

sed可以显示文件内容也可以修改文件内容。

grep只能查看文件内容。

格式:

sed [option] 'script...script' [inputfile]

script: sed自身的脚本,sed自身语法的一种脚本。

inputfile: 文件,如果不写文件就对标准输入的内容进行处理

sed最基本的用法--自动打印:sed ''(''里面的脚本内容不能省略)

不输入脚本就是读入什么就默认打印什么 --- sed内置了自动打印的功能

选项:

-n:关闭sed的自动打印
-e:多点编辑(一次更改多个内容)
-r,-E:使用正则表达式
-i.bak 先把文件做个备份然后再改
-s:将多个文件视为单独的文件

sed的脚本格式:

位置和指令组合而成

地址格式: 处理文件的内容范围

空地址

表示对全文处理

单地址

num:指定的行,$:最后一行

例如:打印第三行的内容



显示ifconfig命令的第二行。

/pattern/:被此处模式所能够匹配到的每一行 (里面可以写正则表达式实现过滤)

例如:打印出包含root的行

地址范围

n,n:表示从n行到第m行,例如 3,6 表示从第3行到第6行 (n,+m 表示从n行到+m行,例如:3,+4 表示从3行到第7行)

/pat1/,/pat2/ (第一个正则表达式之后到下一个正则表达式中间的内容)

例如:匹配以b开头到以g开头的行的中间那些行。



找到了第一个满足条件的范围后不会停止,还会继续往下面找。

#,/pat/或/pat/,# (数字和正则表达式混着用)

步进:每次指定多少个

1~2 奇数行 --- 从第一行开始,以2行为步进(1 3 5 7 ...)

2~2 偶数行

命令:

1. p --- 内容打印
2. Ip --- 忽略大小写输出
3. d --- 把模式空间内容删除掉,不再自动打印了
4. a --- 再某些行后面加内容
5. i --- 再某些行前面加内容
6. c --- 替换某一行的内容
7. w --- file 另存为指定文件
8. r --- 把一个文件内容读到当前匹配到的行中
9. = --- 某一行前面添加行号
10. ! --- 除了某一行的意思
11. q --- 结束或退出sed

例如:删除偶数行,显示奇数行。



并不会真正删除文件内容,只是显示了一下。

搜索替代(sed的核心用法)

格式:

s/pattern/string/修饰符 --- 支持使用其它分隔符,可以是其它形式:s@@@,s###

替换修饰符:

 g 行内全局替换
p 显示替换成功的行
w   /PATH/FILE 将替换成功的行保存至文件中
I,i   忽略大小写

&符号:表示搜索出来的内容。 相当于一个变量,保存搜索出来的内容

正则表达式分组:小括号实现分组,后面要表示第几个分组的内容就用 \num --- 实现把一个文件的一行切成多块,保留其中之一。

比如:把r..t替换成r..ter,前面是root则&代表的就是root。



例如:值显示主机的ip地址

范例:是用sed实现批量修改网卡名称

sed高级用法:

保持空间:将模式空间的数据临时保存到这儿。

高级命令:

x 把模式空间中的内容与保持空间中的内容进行互换(数据互换)
H 把模式空间中的内容追加至保持空间中(内容追加)
n 读取匹配到的行的下一行覆盖至模式空间(下一行覆盖到模式空间)
N 读取匹配到的行的下一行追加至模式空间(下一行追加到模式空间)
d 删除模式空间中的行

范例:

Linux文本三剑客-sed的更多相关文章

  1. Linux文本三剑客超详细教程---grep、sed、awk

    awk.grep.sed是linux操作文本的三大利器,合称文本三剑客,也是必须掌握的linux命令之一.三者的功能都是处理文本,但侧重点各不相同,其中属awk功能最强大,但也最复杂.grep更适合单 ...

  2. Linux文本三剑客总结

    Linux文本处理三剑客 grep 文本过滤(模式:pattern)工具 grep, egrep, fgrep(不支持正则表达式搜索) grep  grep: Global search REgula ...

  3. Linux文本处理sed、软件包管理、磁盘存储、文件系统和挂载

    Linux文本处理工具sed.软件包管理.磁盘存储及文件系统 文本处理工具sed巧妙用法 1.通过sed获取文件路径的基名和目录名 思路:采用正则表达式将文本字符串分组,取对应的分组后向引用即可. 获 ...

  4. Linux 文本三剑客之 sed

    Linux 系统中一切皆文件. 文件是个文本.可以读.可以写,如果是二进制文件,还能执行. 在使用Linux的时候,大都是要和各式各样文件打交道.熟悉文本的读取.编辑.筛选就是linux系统管理员的必 ...

  5. Linux文本三剑客

    grep 文本过滤工具. 作用: 文本搜索工具,根据用户指定的行进行匹配检查,打印匹配到的行. 模式: 由正则表达式字符及文本字符所编写的过滤条件. grep的使用 语法:  grep [OPTION ...

  6. Linux 文本三剑客之 awk

    Linux 系统中一切皆文件. 文件是个文本.可以读.可以写,如果是二进制文件,还能执行. 在使用Linux的时候,大都是要和各式各样文件打交道.熟悉文本的读取.编辑.筛选就是linux系统管理员的必 ...

  7. Linux 文本三剑客之 grep

    Linux 系统中一切皆文件. 文件是个文本.可以读.可以写,如果是二进制文件,还能执行. 在使用Linux的时候,大都是要和各式各样文件打交道.熟悉文本的读取.编辑.筛选就是linux系统管理员的必 ...

  8. 文本三剑客---sed 基础

    sed编辑器被称作流编辑器(stream editor),和普通的交互式文本编辑器恰好相反.在交互式文本编辑器中(比如vim),你可以用键盘命令来交互式的插入.删除或者替换数据中的文本.流编辑器则会自 ...

  9. linux文本三剑客之grep

    grep(global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正 ...

随机推荐

  1. Machine Learning 学习笔记 01 Typora、配置OSS、导论

    Typora 安装与使用. Typora插件. OSS图床配置. 机器学习导论. 机器学习的基本思路. 机器学习实操的7个步骤

  2. vue3项目后台管理系统模板

    Vue3.0 发布第一个版本至今有一段时间了,到现在一直在更新优化,在性能方面,对比 Vue2.x ,性能的提升比较明显,打包后体积更小 来看下 Vue3.x 新增了哪些功能和特性. Performa ...

  3. el-menu菜单 -- unique-opened 子菜单唯一性失效

    总结: 点击的是  el-sub-menu . 所以  el-sub-menu 的唯一性是必须的.否则 unique-opened 属性不生效

  4. VMware虚拟机无法安装Win11解决方法 (暂时全网最全方案)

    目录 1.现象 1.蓝屏重启 2.如下图示,无法启动 2.解决方案 2.1 Hyper-V方案 2.2 禁用 Device Guard(系统:win11) 2.3 升级虚拟机VMware pro的版本 ...

  5. Dapr 能否取代 Spring Cloud?

    很多人都是使用SpringBoot 和 Spring Cloud来开发微服务.Dapr 也是开发微服务的框架,它和Spring Cloud有什么区别呢,其实这不是一个区别的问题,它是不同的时代需要不同 ...

  6. Day 001:PAT练习--1091 N-自守数 (15 分)

      体验了一阵子现代生活后,朕发现敲代码还是挺有意思的.所以从今天开始,小编秦始皇开始记录朕做PAT题目的过程辣,那话不多说,开始今天的题目了: 题目描述:   如果某个数 K 的平方乘以 N 以后, ...

  7. 攻防世界-MISC:Test-flag-please-ignore

    这是攻防世界MISC高手进阶区的题目,题目如下 点击下载附件一,解压后得到一个文本文件,打开后得到一串字符串如下: 通过观察,发现是16进制的字符串(由0~f)的字符串组成,尝试将16进制转字符串,结 ...

  8. StringBoot整合ELK实现日志收集和搜索自动补全功能(详细图文教程)

    @ 目录 StringBoot整合ELK实现日志收集和搜索自动补全功能(详细图文教程) 一.下载ELK的安装包上传并解压 1.Elasticsearch下载 2.Logstash下载 3.Kibana ...

  9. Azure Service Fabric 踩坑日志

    近期项目上面用到了Azure Service Fabric这个服务,它是用来做微服务架构的,由于这套代码和架构都是以前同学留下来的,缺少文档,项目组在折腾时也曾遇到几个问题,这里整理如下,以供参考. ...

  10. Java学习笔记-基础语法Ⅴ

    学习一些Java常用的API Math:包含执行基本数字运算的方法 如果没有构造方法,一般类的成员都是静态的,通过类名可以直接调用 Java中有两种random函数,Math.Random()函数能够 ...