linux sed常用各种操作大全
经常使用,但有些总记不全,有时候经常查找,这次全部捋清楚做备忘,有需要的小伙伴欢迎收藏起来哦!
查、增、改、删一应俱全,非常详细!
目录
一、查看
查看第2行
查看第2行到第3行
查看第1行、第3行
查看从第2行开始到文件结束的内容
查看文件中包含指定字符的行
查看文件中包含指定字符的行数
二、文本内容替换
1,替换每行第一个出现的指定内容
2,全局替换
3,全局替换:按每行
4,全局替换:按指定行数
情景1:替换的范围是相连的几行或1行
情景2:替换的范围是不相连的几行
5,关于定界符
6,替换包含斜杠、反斜杠的内容
方案1
方案2
特殊情况:如果要替换的既包含/又包含\
特殊情况:斜杠替换为反斜杠
7,替换包含引号、单引号的内容
双引号替换为x
单引号替换为x
单引号替换为双引号
8,替换仅为了打印查看效果,不修改原文件时
9,一次替换多个原内容
10,替换整行内容
情景1:整体替换、行数可能变化
情景2:整体替换指定行、行数不变
方法1
方法2
情景3:操作行替换的是不相连的几行
三,追加&插入
换行插入:给第1、2、3行的每行后都新增一行插入内容x
换行插入:给所有行后都新增一行插入内容x
不换行追加:给第1行后追加内容x
不换行追加:给第2行前插入内容x
不换行追加:给文件每行末尾都追加x(sed)
不换行追加:给文件每行末尾都追加x(awk)
四,删除操作
删除空白行
删除指定行
五,同一sed操作多个条件(不同模式)
六,用另一个文件的内容替换该文件指定内容
七,删除文件中每行前的第一个空格
八,删除文件a中每行前的所有空格和所有-符号
一、查看
注意,下面每条指令中最后的a是文件名。
查看第2行
sed -n '2p' a
查看第2行到第3行
sed -n '2,3p' a
查看第1行、第3行
sed -n -e "1p" -e "3p" a
查看从第2行开始到文件结束的内容
sed -n '2,$p' a
上面指令中引号也可以去掉。
查看文件中包含指定字符的行
如下,查看文件中包含hello的行:
sed -n '/hello/p' a
或使用awk完成:
awk '/hello/' a
查看文件中包含指定字符的行数
如下,查看文件中包含hello的行的行数:
sed -n '/hello/p' a |wc -l
也可以grep实现:
grep -c "hello" a
二、文本内容替换
1,替换每行第一个出现的指定内容
如仅替换每行第一个出现的123
sed 's/123/abc/' a
2,全局替换
全局替换每行的指定内容为新内容:
sed 's/123/abc/g' a
3,全局替换:按每行
如按每行从第2个出现时开始进行替换:
sed 's/123/abc/2g' a
4,全局替换:按指定行数
情景1:替换的范围是相连的几行或1行
如下,即替换第3行~第5行内容中的123为abc
sed '3,5s/123/abc/g' a
当然,如果只想替换第3行~第5行中每行第一个123,则去掉g就可以了。
情景2:替换的范围是不相连的几行
如第1行、第3行:
sed -e '3s/123/x/g' -e '11s/123/x/g' a
或
sed -e '3s/123/x/g;11s/123/x/g' a
5,关于定界符
上述案例中/是定界符,该符号可自行设置,如我想换成用#定界:
sed 's#123#abc#2g' a
6,替换包含斜杠、反斜杠的内容
方案1
换定界符可实现,如下将/替换为x:
sed 's#/#x#g' a
如果不换定界符,就是要用\来替换含有\等符号的字符串,怎么办?
如将文件中斜杠、反斜杠替换为x,结果都一样:
sed 's/\/x/g' a
sed: -e expression #1, char 7: unterminated `s' commandsed 's///x/g' a
sed: -e expression #1, char 5: unknown option to `s'
如此会报错。那怎么解决?看方案2.
方案2
对于要替换的内容有斜杠的,用反斜杠转义即可成功:
sed 's/\//x/g' a
如果反斜杠要替换,则也用反斜杠转义:
sed 's/\\/x/g' a
特殊情况:如果要替换的既包含/又包含\
如下,将文件中的所有斜杠、反斜杠均替换为x:
sed 's/\//x/g;s/\\/x/g' a
特殊情况:斜杠替换为反斜杠
sed -i 's/\//\\/g' a
即都用反斜杠转义即可。
7,替换包含引号、单引号的内容
双引号替换为x
如下,将双引号替换为x,其中双引号要用反斜杠\转义:
sed -i 's#\"#x#g' a
单引号替换为x
如下,将单引号替换为x,其中外围的一对单引号需换为双引号,和里面不要交叉即可:
sed -i "s#'#x#g" a
单引号替换为双引号
但是,如果是引号换为另一种引号呢?如将单引号替换为双引号:
sed -i "s#'#\"#g" a
即,双引号用\转义即可成功。
8,替换仅为了打印查看效果,不修改原文件时
sed -e
9,一次替换多个原内容
解决办法:用分号;隔开
举例如替换文件中123为x,替换456为y:
sed 's/123/x/g;s/456/y/g' a
10,替换整行内容
字符c用来操作指定行,如1c指的是第一行,1,3c就是第1行~第3行
情景1:整体替换、行数可能变化
将第1行完整替换为x
sed -i '1c x' a
将第1、2行的所有内容完整替换为x
sed -i '1,2c x' a
此时效果是原来的第1、2行消失,被替换为了x,相当于文件整体少了一行。
(注意并不是把第1、2行每行都各自替换为x哦)
情景2:整体替换指定行、行数不变
将第1、2行的每行内容都替换为x
方法1
sed -i '1c x' a | sed -i '2c x' a
即用管道符连接多个行操作。
方法2
不使用c,使用正则+替换的办法来实现:
sed -i '1,2s/.*/x/g' a
情景3:操作行替换的是不相连的几行
如果是不相连的两行,如第1行、第3行:
sed -i -e '1s/.*/x/g' -e '3s/.*/x/g' a
或
sed -i -e '1s/.*/x/g;3s/.*/x/g' a
三,追加&插入
下面都是操作a文件。
换行插入:给第1、2、3行的每行后都新增一行插入内容x
sed '1,3ax' a
如文件a内容是:
hello
hello.hello
12345123
操作后变为6行:
hello
x
hello.hello
x
12345123
x
换行插入:给所有行后都新增一行插入内容x
sed -i 'ax' a
不换行追加:给第1行后追加内容x
sed -i '1s/$/x/' a
不换行追加:给第2行前插入内容x
sed -i '2s/^/x/' a
不换行追加:给文件每行末尾都追加x(sed)
sed -i 's/$/x/' a
不换行追加:给文件每行末尾都追加x(awk)
awk '{print $0"x"}' a
或
awk '$0=$0"x"' a
注意,此操作(awk)不会实际修改文件。
四,删除操作
注意:下述操作如果只想操作后打印出来而不是真正修改文件,则去掉 -i参数即可。
主要是用d字符删除。
删除空白行
sed -i '/^$/d' a
删除指定行
如删除第1行
sed -i '1d' a
删除最后一行
sed -i '$d' a
删除第2行到第3行
sed -i '2,3d' a
删除第2行到尾行
sed -i '2,$d' a
删除所有以hello开头的行
sed -i '/^hello/d'
删除所有包含hello的行
sed -i '/hello/'d a
五,同一sed操作多个条件(不同模式)
-e选项允许在同一行里执行多条命令。
举例如:将第1行替换为x、将文件中123替换为x,将456替换为y,且上述所有操作实际修改到文件
sed -i -e '1c x' -e 's/123/x/g;s/456/y/g' a
可以看到,不同的操作用-e指定,多个替换直接可以在一个-e内完成并可以用分号连接。
六,用另一个文件的内容替换该文件指定内容
-r来指定目标文件。如下,用b文件的内容替换a文件中的所有123
sed -i '/123/r b' a
七,删除文件中每行前的第一个空格
sed 's/^ //g' a
注意,此时仅删除每行开始的第一个空格,如果某行开头有多个空格只会删除第一个。
如要要删除每行前所有空格:
sed 's/^[ ]*//' a
八,删除文件a中每行前的所有空格和所有-符号
文件a内容如下:
cat aaaabbb
-cccddd- eee
操作起来:
sed -i 's/^[ -]*//' a
再次查看:
#cat ccc
aaa
bbb
ccc
ddd
eee
相关文章:
linux sed常用各种操作大全
经常使用,但有些总记不全,有时候经常查找,这次全部捋清楚做备忘,有需要的小伙伴欢迎收藏起来哦! 查、增、改、删一应俱全,非常详细! 目录 一、查看 查看第2行 查看第2行到第3行 查看第1行、…...

通过 Keycloak 结合 OAuth2.0协议进行 Amazon API Gateway 鉴权
1. 简介 本文介绍了如何通过 Keycloak,并结合 Amazon API Gateway 内置的授权功能,完成对 Amazon 资源请求的鉴权过程。API Gateway 帮助开发者安全的的创建、发布、维护并管理 API 的访问。在中国区,由于Cognito 仍未上线,因此使…...

修复中间件log4j漏洞方案(直接更换漏洞jar包)
说明: 后台服务里面的log4j漏洞我们已经全部升级处理了,但是一些中间件镜像包里的log4j漏洞需要单独处理 解决办法以ElasticSearch7.6.2为例: 方法: (1)找到容器里面有哪些旧的log4j依赖包 (…...

怎么压缩pdf文件大小?详细压缩步骤
怎么压缩pdf文件大小?在日常的工作和学习中,我们频繁地处理PDF文件。然而,有时候这些文件的大小可能会非常庞大,这给我们带来了一系列的问题。首先,它们占用了大量的存储空间,使得我们的设备变得拥挤不堪。…...
php 安装rabbitmq:如何使用 PHP 安装 RabbitMQ?
示例示例安装Erlang要在PHP环境中使用,需要先安装Erlang,它是的运行环境。 1、安装Erlang 首先,要在PHP环境中使用RabbitMQ,需要先安装Erlang,它是RabbitMQ的运行环境。 可以使用下面的命令来安装Erlang:…...

算法训练营day44|动态规划 part06:完全背包 (完全背包、 LeetCode518. 零钱兑换 II、377. 组合总和 Ⅳ )
文章目录 完全背包518. 零钱兑换 II (求组合方法数)思路分析代码实现思考总结 377. 组合总和 Ⅳ (求排列方法数)思路分析代码实现思考总结 完全背包 完全背包和01背包问题唯一不同的地方就是,每种物品有无限件。 依然举这个例子: 背包最大重量为4。 物…...

包管理工具--》其他包管理器之cnpm、pnpm、nvm
包管理工具系列文章目录 一、包管理工具--》npm的配置及使用(一) 二、包管理工具--》npm的配置及使用(二) 三、包管理工具--》发布一个自己的npm包 四、包管理工具--》yarn的配置及使用 五、包管理工具--》其他包管理器之cnpm…...

线性代数的学习和整理22:矩阵的点乘(草稿)
4 矩阵乘法 A,B两个同阶同秩N阵,看上去结构一样,但两厢相乘,在做在右,地位差别巨大。 在左,你就是基,是空间的根本,是坐标系,是往哪去、能到哪的定海神针,是如来佛手&a…...

如何在Windows中使用C#填写和提取PDF表单
如何在Windows中使用C#填写和提取PDF表单 PDF表单不仅允许用户填写和提交数据,也允许用户创建各种表单域收集用户的数据,并通过提取表单字段值,将收集和合并提交的数据进一步分析或处理。PDF通过电子方式填写、保存和共享的形式,…...
microsoft.office.interop.word 怎样 读取 某个汉字 字体颜色为红色
SKY[管理]筱傑 SKY[机器]筱淋 microsoft.office.interop.word 怎样 读取 某个汉字 字体颜色为红色呢? 要读取某个汉字的字体颜色是否为红色,您可以使用Microsoft.Office.Interop.Word来进行操作。以下是一个示例代码,可以帮助您实现该功能&am…...
第二十二章 Classes - 调用类方法的快捷方式
文章目录 第二十二章 Classes - 调用类方法的快捷方式调用类方法的快捷方式类参数 第二十二章 Classes - 调用类方法的快捷方式 调用类方法的快捷方式 使用 ObjectScript 调用类方法时,在以下情况下可以省略包(或更高级别的包):…...
标准C++day2——函数重载、默认形参和引用
一、函数重载 1、什么是函数重载? 在同一作用域下,函数名相同,参数列表不同的函数构成重载关系 函数重载与返回值类型、参数名无关 与作用域是否相同,以及参数列表的数量、参数类型、常属性不同等有关 2、C是如何实现函数重载的&a…...
Qt5下遍历QList的方法
lines定义如下 QMap<QString,Line> lines; Line的定义如下 class Line{protected:QString name;QColor color;QList<int> total_stations; // all statuibQList<QString> start_stas,end_stas; //start end stationQList<QList<QString>>sta_li…...

Leetcode 剑指 Offer II 043. 完全二叉树插入器
题目难度: 中等 原题链接 今天继续更新 Leetcode 的剑指 Offer(专项突击版)系列, 大家在公众号 算法精选 里回复 剑指offer2 就能看到该系列当前连载的所有文章了, 记得关注哦~ 题目描述 完全二叉树是每一层(除最后一层外)都是完…...

链路追踪Skywalking应用实战
目录 1 Skywalking应用2 agent下载3 agent应用3.1 应用名配置3.2 IDEA集成使用agent3.3 生产环境使用agent 4 Rocketbot4.1 Rocketbot-仪表盘4.2 Rocketbot-拓扑图4.3 追踪4.4 性能分析4.5 告警4.5.1 警告规则详解4.5.2 Webhook规则4.5.3 自定义Webhook消息接收 1 Skywalking应…...

提升你的Android开发技能:从AR/VR沉浸到UI设计和故障排除
文章目录 探索最新AR/VR应用在教育、游戏、医疗等领域的应用教育领域游戏领域医疗领域 深入了解Android内存管理与性能优化的方法与技巧垃圾回收机制内存泄漏使用弱引用避免过度渲染内存优化图像优化延迟加载Android中的调试技术应用程序分析 分享如何提高Android应用的易用性和…...

Arm 架构 Ubuntu 使用 Docker 安装 Gitlab 并使用
官方 gitlab 文档 我的系统是 arm 架构的 ubuntu 官网没有提供 arm 架构的 docker 的 gitlab 的安装方式,直接安装的也是后来加的,文档也是随笔带过,,,我用到了,记录一下 默认已经安装了 docker 在 docker …...

百度地图3D棱柱鼠标事件
百度地图2D API JavaScript API | 百度地图API SDK 百度地图3D API jspopularGL | 百度地图API SDK 3D棱柱效果如下 一. 渲染地图 var map new BMapGL.Map(container, {style: {styleJson: styleJson2} }) map.centerAndZoom(new BMapGL.Point(116.404, 39.925), 9); map…...
PHP调用java class 类实现文件签名
PHP调用java class 类实现文件签名 原始代码改造开始PHP内调用方式起因:对接某平台API接口,发送的文件需要做 SM3 签名,对方平台是java写的,只有java加密示例,照着java的加密算法翻译为PHP版本,在编码转换上始终有些差异。没办法,只能想办法使用他们的java方式。 原始代…...
信号和槽机制
信号和槽机制 信号和槽的使用自定义信号槽信号槽机制是Qt框架中引以为豪机制之一,所谓信号槽实际就是类似于Gof中的观察者模式。当某个事件发生以后,比如点击一下按钮,按钮就会触发一个信号,这个信号按照类似广播的形式进行发送,如果某个对象对这个信号感兴趣就会触发连接…...
Cursor实现用excel数据填充word模版的方法
cursor主页:https://www.cursor.com/ 任务目标:把excel格式的数据里的单元格,按照某一个固定模版填充到word中 文章目录 注意事项逐步生成程序1. 确定格式2. 调试程序 注意事项 直接给一个excel文件和最终呈现的word文件的示例,…...
树莓派超全系列教程文档--(62)使用rpicam-app通过网络流式传输视频
使用rpicam-app通过网络流式传输视频 使用 rpicam-app 通过网络流式传输视频UDPTCPRTSPlibavGStreamerRTPlibcamerasrc GStreamer 元素 文章来源: http://raspberry.dns8844.cn/documentation 原文网址 使用 rpicam-app 通过网络流式传输视频 本节介绍来自 rpica…...

相机Camera日志实例分析之二:相机Camx【专业模式开启直方图拍照】单帧流程日志详解
【关注我,后续持续新增专题博文,谢谢!!!】 上一篇我们讲了: 这一篇我们开始讲: 目录 一、场景操作步骤 二、日志基础关键字分级如下 三、场景日志如下: 一、场景操作步骤 操作步…...

家政维修平台实战20:权限设计
目录 1 获取工人信息2 搭建工人入口3 权限判断总结 目前我们已经搭建好了基础的用户体系,主要是分成几个表,用户表我们是记录用户的基础信息,包括手机、昵称、头像。而工人和员工各有各的表。那么就有一个问题,不同的角色…...

(二)原型模式
原型的功能是将一个已经存在的对象作为源目标,其余对象都是通过这个源目标创建。发挥复制的作用就是原型模式的核心思想。 一、源型模式的定义 原型模式是指第二次创建对象可以通过复制已经存在的原型对象来实现,忽略对象创建过程中的其它细节。 📌 核心特点: 避免重复初…...

ios苹果系统,js 滑动屏幕、锚定无效
现象:window.addEventListener监听touch无效,划不动屏幕,但是代码逻辑都有执行到。 scrollIntoView也无效。 原因:这是因为 iOS 的触摸事件处理机制和 touch-action: none 的设置有关。ios有太多得交互动作,从而会影响…...

有限自动机到正规文法转换器v1.0
1 项目简介 这是一个功能强大的有限自动机(Finite Automaton, FA)到正规文法(Regular Grammar)转换器,它配备了一个直观且完整的图形用户界面,使用户能够轻松地进行操作和观察。该程序基于编译原理中的经典…...

2025年渗透测试面试题总结-腾讯[实习]科恩实验室-安全工程师(题目+回答)
安全领域各种资源,学习文档,以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具,欢迎关注。 目录 腾讯[实习]科恩实验室-安全工程师 一、网络与协议 1. TCP三次握手 2. SYN扫描原理 3. HTTPS证书机制 二…...
怎么让Comfyui导出的图像不包含工作流信息,
为了数据安全,让Comfyui导出的图像不包含工作流信息,导出的图像就不会拖到comfyui中加载出来工作流。 ComfyUI的目录下node.py 直接移除 pnginfo(推荐) 在 save_images 方法中,删除或注释掉所有与 metadata …...

Web后端基础(基础知识)
BS架构:Browser/Server,浏览器/服务器架构模式。客户端只需要浏览器,应用程序的逻辑和数据都存储在服务端。 优点:维护方便缺点:体验一般 CS架构:Client/Server,客户端/服务器架构模式。需要单独…...