当前位置:网站首页>sed of the Three Musketeers of Shell Programming
sed of the Three Musketeers of Shell Programming
2022-08-11 00:33:00 【A lemon now】
一、sed工具
sed是一个强大而简单的文本解析转换工具,可以读取文本,并根据指定的条件对文本内容进行编辑(删除、替换、添加、移动等),最后输出所有行或者仅输出处理的某些行.sedQuite complex text processing operations can also be implemented without interaction,被广泛应用于Shell脚本中,Various automated processing tasks can be completed.
sed 的工作流程主要包括读取、执行和显示三个过程.
读取:sed从输入流(文件、管道、标准输入)中读取一行内容并存储到临时的缓冲区中(又称模式空间)
执行:默认情况下,所有的sed命令都在模式空间中顺序地执行,除非指定了行的地址,否则sedCommands will be executed sequentially on all lines.
显示:发送修改后的内容到输出流.在发送数据后,模式空间将会被清空.Before all my content has been processed,上述过程将重复执行,直至所有内容被处理完.
注意:默认情况下所有的sed命令都是在模式空间内执行的,因此输入的文件并不会发生任何变化,除非是用重定向存储输出.
二、sed命令用法
通常情况下调用sed命令有两种格式.
其中,“参数"是指操作的目标文件,当存在多个操作对象时,文件之间用逗号”,“分隔;而scriptfile表示脚本文件,需要用”-f
"选项指定,When the script file appears before the target file,表示通过指定的脚本文件来处理输入的目标文件.
sed [选项] '操作' 参数
sed [选项] -f scriptfile 参数
1.常见的sed命令选项
常见选项
-e或--expression=:表示用指定命令或者脚本来处理输入的文本文件
-f或--file=:表示用指定的脚本文件来处理输入的文本文件
-h或--help:显示帮助
-n、--quiet或silent:表示仅显示处理后的结果
-i.bak:备份文件并原处编辑
-r,-E:使用扩展正则表达式
-s:将多个文件视为独立文件,而不是单个连续的长文件流
操作
“操作"用于指定对文件操作的动作行为,也就是sed的命令.通常情况下是采用的”[n1[,n2]]“操作参数的格式.n1、n2是可选的,代表选择进行操作的行数,如操作需要在5~20行之间进行,则表示为"5,20动作行为”
常见的操作包括以下几种
a:增加,在当前行下面增加一行指定内容
c:替换,将选定行替换为指定内容
d:删除,删除选定的行
i:插入,在选定行上面插入一行指定内容
p:打印,如果同时指定行,表示打印指定行;如果不指定行,则表示打印所有内容;如果有非打印字符,则以ASCLL码输出.通常与"-n"选项一起使用
s:替换,替换指定字符
y:字符转换
2.用法示例
2.1 sed的基本用法
输出符合条件的文本(p表示正常输出)
sed -n 'p' test.txt //输出所有内容,等同于cat test.txt

sed -n '3p' test.txt //输出第三行

sed -n '3,5p' test.txt //输出3-5行

nl test.txt | sed -n '1,9{p;n}' //输出1到9行中的奇数行

nl test.txt |sed -n '1,9{n:p}' //输出1到9even row in row

sed -n '10,${n;p}' test.txt //输出第10行至文件尾之间的偶数行

在执行"sed -n ‘10,${n;p}’ "命令时,The first line read is the first line of the file10行,读取的第2行是文件的第11行,依次类推,So the output is the first of the file11行、13行直至文件结尾,It will include blank lines
2.2 sedCombined with regular expression usage
sed命令结合正则表达式时,格式略有不同,正则表达式以"/"包围
输出符合条件的文本
sed -n '/the/p' test.txt //输出包含the的行

sed -n '4,/the/p' test.txt //输出第4行至第一个包含the的行

sed -n '/the/=' test.txt //输出包含the的行所在的行号,等号用来输出行号

sed -n '/^PI/p' text.txt //输出以IP为开头的行

sed -n '/[0-9]$/p' test.txt //Output lines ending in numbers

sed -n '/\<wood\>/p' test.txt

总结
边栏推荐
- 使用 BeanUtils 做属性拷贝,性能有点拉胯!
- ① 数据库介绍 及 关系型数据库的关系代数表达式
- 有哪些可以投稿软件工程/系统软件/程序设计语言类外文期刊、会议?
- CF1427F-Boring Card Game【贪心】
- How to do patent mining, the key is to find patent points, in fact, it is not too difficult
- 微信小程序内部A页面向内嵌H5页面跳转,并且传参
- Dump文件生成,内容,以及分析
- HW-常见攻击方式和漏洞原理(2)
- 2022.8.10-----leetcode.640
- Introduction to Qt (6) - Implementation of the lottery system
猜你喜欢
随机推荐
Summary of Confused Knowledge Points for "High Items" in the Soft Examination in the Second Half of 2022 (2)
什么是“门”电路(电子硬件)
Mysql数据库安装配置详细教程
What is the ASIO4ALL
WebView2 通过 PuppeteerSharp 实现RPA获取壁纸 (案例版)
复制带随机指针的链表——LeetCode
ArcGIS Pro 创建tpk
构建检测,无规矩不成方圆
关于编程本质那些事
SAS data processing technology (1)
时间戳转换为日期格式、获取当前时间戳
"NIO Cup" 2022 Nioke Summer Multi-School Training Camp 2 DGHJKL Problem Solution
Web APIs BOM - A Comprehensive Case of Operating Browsers
全排列思路详解
Based on the SSM to reach the phone sales mall system
“蔚来杯“2022牛客暑期多校训练营3 DF题解
力扣------用栈操作构建数组
构建资源的弹性伸缩
Qt入门(六)——抽奖系统的实现
Design and Realization of Employment Management System in Colleges and Universities









