当前位置:网站首页>Shell脚本中sed使用
Shell脚本中sed使用
2022-04-22 15:47:00 【jcrhl321】
目录
一、sed编辑器
sed(Stream EDitor)是一个强大而简单的文本解析转换工具,可以读取文本,并根据指定的条件对文本内容进行编辑(删除、替换、添加、移动等),最后输出所有行或者仅输出处理的某些行。sed 也可以在无交互的情况下实现相当复杂的文本处理操作,被广泛应用于 Shell 脚本中,用以完成各种自动化处理任务。
1、sed概述
sed是一种流编辑器,流编辑器会在编辑器处理数据之前基于预先提供的一组规则来编辑数据流
sed编辑器可以根据命令来处理数据流中的数据,这些命令要么从命令行中输入,要么存储在一个命令文本文件中
2、sed 的工作流程
sed 的工作流程主要包括读取、执行和显示三个过程
读取
sed 从输入流(文件、管道、标准输入)中读取一行内容并存储到临时的缓冲区中(又称模式空间,pattern space)
执行
默认情况下,所有的sed 命令都在模式空间中顺序地执行,除非指定了行的地址,否则sed 命令 将会在所有的行上依次执行
显示
发送修改后的内容到输出流。在发送数据后,模式空间将会被清空
(默认情况下所有的sed命令都是在模式空间内执行的,因此输入的文件并不会发生任何变化,除非是用重定向存储输出)
3、sed命令的常见格式
sed -e '操作' 文件1 ,文件2
sen -n -e '操作' 文件1 ,文件2
sed -i -e '操作' 文件1 ,文件2
sed -f 脚本文件 文件1 文件2
sed -e ' n {
操作1
操作2
...
}' 文件1,文件2
常用选项
| -e或- -expression= | 表示用指定命令来处理输入的文本文件,只有一个操作命令时可省略,一 般在执行多个操作命令使用 |
| f或- -file= | 表示用指定的脚本文件来处理输入的文本文件 |
| -h 或- -help | 显示帮助 |
| -n、--quiet 或 silent | 表示仅显示处理后的结果 禁止sed编辑器输出,但可以与p命令一起使用完成输出 |
| -i | 直接修改目标文本文件 |
| -r | 使用扩展正则表达式 |
4、sed命令常用操作
| s | 替换,替换指定字符 |
| d | 删除,删除选定的行 |
| a | 增加,在当前行下面增加一行指定内容 |
| i | 插入,在选定行上面插入一行指定内容 |
| c | 替换,将选定行替换为指定内容 |
| y | 字符转换,转换前后的字符长度必须相同 |
| p | 打印,如果同时指定行,表示打印指定行;如果不指定行,则表示打印所有内容; 如果有非打印字符,则以 AscII码输出。其通常与_n"选项一起使用 |
| = | 打印行号 |
| l(小写L) | 打印数据流中的文本和不可打印的ASCII字符(比如结束符s、制表符\t) |
二、sed常用命令使用
1、sed打印
例1,打印内容


例2,打印指定内容,多行内容



例3


2、sed删除
sed 'd' 1.txt 全部删除,不加行号默认全删
sed '$d' 1.txt 删除最后一行
sed '/^$/d' 1.txt 删除空行



3、sed替换
格式
sed 行范围 s/旧字符串/新字符串/替换标记
| 替换标记 | 作用 |
| 数字 | 表明新字符串将替换第几处匹配的地方 |
| g | 表明新字符串将会替换所有匹配的地方 |
| p | 打印与替换命令匹配的行,与-n一起使用 |
| w | 将替换的结果写到文件中 |


sed 行范围 s/旧字符串/新字符串/替换标记
该格式中的/可用其他符号或者字母数字替代,只要保持一致即可,如#、?等

4、sed插入与增加





将输出的字符进行调整顺序,括号将(aaa)看作一个整体
4、sed剪切粘贴与复制粘贴
模式空间:存放当前处理的行,将处理结果输出
保持空间:作用类似于“剪贴板”;默认存放一个空行(换行符\n)
格式
sed '行范围 {操作1;操作2};行操作3' 文件
H:复制到剪切板
d:删除
G:粘贴



版权声明
本文为[jcrhl321]所创,转载请带上原文链接,感谢
https://blog.csdn.net/jcrhl321/article/details/124290872
边栏推荐
- 短视频平台搭建,移动端商品下单、购买过程的实现
- [deeply understand tcallusdb technology] delete all data interface descriptions in the list - [list table]
- 分布式任務調度平臺XXL-JOB安裝及使用
- 【写作】论文写作技巧
- Ansible practical tips - batch patrol site URL status
- [milestone] wireguard series articles (7): creating a full mesh network using wireguard and netmaker
- Dongfeng Nissan recalls some Xiaoke with potential safety hazards
- [yolact dataset production - detailed explanation of labelme use and conversion to coco]
- Construction method and process of enterprise level knowledge management (km)
- WxWidgets learning notes (I): Interpretation of code:: blocks template project source code
猜你喜欢
![[in depth understanding of tcallusdb technology] description of data interface of designated location in replacement list - [list table]](/img/7b/8c4f1549054ee8c0184495d9e8e378.png)
[in depth understanding of tcallusdb technology] description of data interface of designated location in replacement list - [list table]

Computer Vision L8 -- Synthesis

UART minimalist routine for raspberry PI B

【模型】状态空间平均法建模-降压

WxWidgets learning notes (I): Interpretation of code:: blocks template project source code

存在安全隐患 东风日产召回部分逍客

一文学会JVM性能优化

Future development direction of construction industry: digital chemical plant management system

Construction method and process of enterprise level knowledge management (km)

年薪37w带12人团队,内推腾讯被拒了。。。
随机推荐
Yunna | the latest measures for the management of fixed assets in the hotel industry, hotel physical asset management system
SAP UI5 应用开发教程之七十一 - SAP UI5 页面的嵌套路由
Fourier analysis and filtering
Send custom fields using Tencent cloud custom alarm SMS interface
[in depth understanding of tcallusdb technology] sample code for reading data according to some key field values - [generic table]
腾讯云堡垒机开启OTP认证
OSPF的详细讲解、分类,还有实验讲解
ML之FE:结合Kaggle比赛的某一案例细究特征工程(Feature Engineering)思路框架
Introduction to development using Hal library, stm32cubemx and keil 5 (I): turn on an LED light (nucleo-f411re)
leetcode-----奇偶树
【写作】论文写作技巧
Construction method and process of enterprise level knowledge management (km)
07 - knowledge points about functions
一文学会JVM性能优化
【里程碑】WireGuard系列文章(七):使用WireGuard和Netmaker创建Full Mesh网络
Commitfailedexception exception, reason and solution
Will NFT impact the native culture of the Internet?
Redis thread model
Installation and use of distributed task scheduling platform xxl-job
挖财的账户是安全的吗?怎么去办理?