Linux文本三剑客-sed
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的更多相关文章
- Linux文本三剑客超详细教程---grep、sed、awk
awk.grep.sed是linux操作文本的三大利器,合称文本三剑客,也是必须掌握的linux命令之一.三者的功能都是处理文本,但侧重点各不相同,其中属awk功能最强大,但也最复杂.grep更适合单 ...
- Linux文本三剑客总结
Linux文本处理三剑客 grep 文本过滤(模式:pattern)工具 grep, egrep, fgrep(不支持正则表达式搜索) grep grep: Global search REgula ...
- Linux文本处理sed、软件包管理、磁盘存储、文件系统和挂载
Linux文本处理工具sed.软件包管理.磁盘存储及文件系统 文本处理工具sed巧妙用法 1.通过sed获取文件路径的基名和目录名 思路:采用正则表达式将文本字符串分组,取对应的分组后向引用即可. 获 ...
- Linux 文本三剑客之 sed
Linux 系统中一切皆文件. 文件是个文本.可以读.可以写,如果是二进制文件,还能执行. 在使用Linux的时候,大都是要和各式各样文件打交道.熟悉文本的读取.编辑.筛选就是linux系统管理员的必 ...
- Linux文本三剑客
grep 文本过滤工具. 作用: 文本搜索工具,根据用户指定的行进行匹配检查,打印匹配到的行. 模式: 由正则表达式字符及文本字符所编写的过滤条件. grep的使用 语法: grep [OPTION ...
- Linux 文本三剑客之 awk
Linux 系统中一切皆文件. 文件是个文本.可以读.可以写,如果是二进制文件,还能执行. 在使用Linux的时候,大都是要和各式各样文件打交道.熟悉文本的读取.编辑.筛选就是linux系统管理员的必 ...
- Linux 文本三剑客之 grep
Linux 系统中一切皆文件. 文件是个文本.可以读.可以写,如果是二进制文件,还能执行. 在使用Linux的时候,大都是要和各式各样文件打交道.熟悉文本的读取.编辑.筛选就是linux系统管理员的必 ...
- 文本三剑客---sed 基础
sed编辑器被称作流编辑器(stream editor),和普通的交互式文本编辑器恰好相反.在交互式文本编辑器中(比如vim),你可以用键盘命令来交互式的插入.删除或者替换数据中的文本.流编辑器则会自 ...
- linux文本三剑客之grep
grep(global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正 ...
随机推荐
- Grafana中文汉化
可视化图表 Grafana是一个通用的可视化工具.通过Grafana可以管理用户权限,数据分析,查看,导出,设置告警等. 仪表盘Dashboard 通过数据源定义好可视化的数据来源之后,对于用户而言最 ...
- 入门学习SpringCloud
今天趁着空余时间,看了一丁点狂神SpringCloud的视频.学习微服务及架构相关知识,明天再学习系列视频的剩下部分,部署第一个SpringCloud练习. 同时趁着晚上课后大家有时间组织了小型会议, ...
- 随机获取gbr颜色值
- MySQL事务提交流程详解
MySQL事务的提交采用两阶段提交协议, 前些日子和同事聊的时候发现对提交的细节还是有些模糊,这里对照MySQL源码详细记录一下,版本是MySQL5.7.36. 一. 事务的提交流程. 1. 获取 M ...
- defer综合
A "defer" statement invokes a function whose execution is deferred to the moment the surro ...
- 数仓建设 | ODS、DWD、DWM等理论实战(好文收藏)
本文目录: 一.数据流向 二.应用示例 三.何为数仓DW 四.为何要分层 五.数据分层 六.数据集市 七.问题总结 导读 数仓在建设过程中,对数据的组织管理上,不仅要根据业务进行纵向的主题域划分,还需 ...
- 推荐一个我写的Python库——PyNAS
介绍 PyNAS是一个以Python的Updog的库为基础,制作而来的库 安装 pip安装(推荐) pip install PyNAS 源码安装(推荐) Github: git clone https ...
- struts2绕过waf读写文件及另类方式执行命令
之前碰到过好几次Struts2,还都是016,项目.众测都遇到过,每次都只是证明了一下存在,由于waf的存在,没有深入去利用,这里简单的记录下. 0x01 背景 xray或者Struts2漏扫可以扫到 ...
- PostgreSQL配置调优在线工具
链接: https://pgtune.leopard.in.ua/#/
- 【论文笔记】Federated Learning for Wireless Communications: Motivation, Opportunities, and Challenges(综述)
Federated Learning for Wireless Communications: Motivation, Opportunities, and Challenges Authors So ...