shell脚本之sed命令

shell脚本之sed命令

    • sed 命令的一些常用选项
    • sed 命令的一些常用命令
    • 具体例子

sed 在 Shell 脚本中非常常用,可以用于文本替换、插入、删除等操作。
以下是 sed 命令的基本语法:

sed [选项] '命令' [文件...]

其中,选项是可选的,可以用来指定一些额外的参数,如输入文件的分隔符等;命令是用来定义编辑操作的命令,可以是查找、替换、删除等;文件是要进行编辑的文件列表,可以指定多个文件,也可以使用管道从其他命令获取输入。

sed 命令的一些常用选项

-n:静默模式,不输出模式空间中的内容。
-e:指定要执行的多个命令。
-f:指定包含要执行的命令的文件。
-i:直接修改文件内容,而不是输出到标准输出。
-r:使用扩展正则表达式。
-s:将多个文件视为一个连续的文件流处理。
-u:使用未缓冲的 I/O,适用于大文件处理。

sed 命令的一些常用命令

s/pattern/replacement/:替换操作,将模式空间中匹配到的第一个模式替换为指定的替换字符串。
s/pattern/replacement/g:全局替换操作,将模式空间中匹配到的所有模式替换为指定的替换字符串。
s/pattern/replacement/p:打印操作,将模式空间中匹配到的模式替换为指定的替换字符串,并输出到标准输出。
s/pattern/replacement/w filename:写入操作,将模式空间中匹配到的模式替换为指定的替换字符串,并将结果写入指定的文件。
d:删除操作,删除模式空间中的行。
p:打印操作,输出模式空间中的内容。
n:下一行操作,读取并处理下一行。
N:追加下一行操作,将下一行追加到模式空间中。
h:复制模式空间内容到保持空间。
H:追加模式空间内容到保持空间。
g:将保持空间的内容复制到模式空间。
G:将保持空间的内容追加到模式空间。
x:交换模式空间和保持空间的内容。
b label:无条件跳转操作,跳转到指定的标签位置。
t label:测试操作,如果模式空间中包含匹配的模式,则跳转到指定的标签位置。
q:退出操作,退出 sed 处理。

具体例子

1)替换文本
使用sed命令可以将文本中的某个字符串替换为另一个字符串。下面是一个简单的例子:

sed 's/search_string/replacement_string/g' file.txt

上述命令将在文件file.txt中查找所有的search_string,并将其替换为replacement_string。其中,s表示替换操作,g表示全局替换(即一行中的所有匹配项都被替换)。

删除文本
使用sed命令可以删除文本中的特定行或特定字符串。下面是一个例子:

sed '/search_string/d' file.txt

上述命令将在文件file.txt中查找所有的包含search_string的行,并将其删除。其中,d表示删除操作。

插入文本
使用sed命令可以在文本的特定位置插入新的文本。下面是一个例子:

sed '/search_string/a\new_text' file.txt

上述命令将在文件file.txt中查找所有的包含search_string的行,并在其后面插入new_text。其中,a表示插入操作,\new_text表示要插入的新文本。

移动文本
使用sed命令可以将文本中的特定行或特定字符串移动到其他位置。下面是一个例子:

sed '/search_string/{x;s/\n/replacement_string/;}' file.txt

上述命令将在文件file.txt中查找所有的包含search_string的行,并将其移动到文件的末尾,并将其中的search_string替换为replacement_string。其中,x表示交换操作,s表示替换操作。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/78726.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

关于CMake多级目录/多个子目录/子目录文件调用另外子目录文件接口及清除CMake生成的中间文件的注意事项

1)如果子目录代码文件相对独立,也就是没有引用其他子目录的文件,可以单独编译成库文件 上层CMakeLists.txt通过link_libraries()来添加这个库文件 2)如果子目录代码引用了其他子目录的文件,建议在上一层编译(前提也是…

睿趣科技:抖音开店前期需要准备什么

抖音作为全球最受欢迎的短视频平台之一,已经成为了许多年轻人的创业和赚钱的机会。如果你计划在抖音上开店,那么在正式开业之前,有一些重要的准备工作是必不可少的。下面就是抖音开店前期需要准备的关键步骤和注意事项。 确定你的目标和产品&…

Matlab图像处理-三原色

三原色 根据详细的实验结果,人眼中负责颜色感知的细胞中约有65%对红光敏感,33%对绿光敏感,只有2%对蓝光敏感。正是人眼的这些吸收特性决定了所看到的彩色是一般所谓的原色红(R)、绿(G)和蓝&…

动态渲染 echarts 饼图(vue 2 + axios + Springboot)

目录 前言1. 项目搭建1.1. 前端1.2. 后端 2. 后端数据渲染前端2.1 补充1:在 vue 中使用 axios2.2. 补充2:Springboot 处理跨域问题2.3. 修改前端代码2.3.1 修改饼图样式2.3.2 调用后台数据渲染饼图2.3.3 改造成内外两个圈 前言 因为上文中提到的需求就是…

内网隧道代理技术(二十五)之 ICMP隧道反弹SHELL

ICMP隧道反弹SHELL ICMP隧道原理 由于ICMP报文自身可以携带数据,而且ICMP报文是由系统内核处理的,不占用任何端口,因此具有很高的隐蔽性。把数据隐藏在ICMP数据包包头的data字段中,建立隐蔽通道,可以实现绕过防火墙和入侵检测系统的阻拦。 ICMP隧道有以下的优点: ICMP…

腾讯云4核8G服务器选CVM还是轻量比较好?价格对比

腾讯云4核8G云服务器可以选择轻量应用服务器或CVM云服务器标准型S5实例,轻量4核8G12M服务器446元一年,CVM S5云服务器935元一年,相对于云服务器CVM,轻量应用服务器性价比更高,轻量服务器CPU和CVM有区别吗?性…

博客系统(升级(Spring))(四)(完)基本功能(阅读,修改,添加,删除文章)(附带项目)

博客系统 (三) 博客系统博客主页前端后端个人博客前端后端显示个人文章删除文章 修改文章前端后端提取文章修改文章 显示正文内容前端后端文章阅读量功能 添加文章前端后端 如何使用Redis项目地点: 博客系统 博客系统是干什么的? CSDN就是一…

数字化转型对企业有哪些优势?

数字化转型为企业提供了众多优势,帮助他们在日益数字化的世界中保持竞争力、敏捷性和响应能力。以下是一些主要优势: 1.提高效率和生产力: 重复性任务和流程的自动化可以减少人为错误,并使员工能够专注于更具战略性的任务。简化…

Apache Linki 1.3.1+DataSphereStudio+正常启动+微服务+端口号

我使用的是一键部署容器化版本,官方文章 默认会启动6个 Linkis 微服务,其中下图linkis-cg-engineconn服务为运行任务才会启动,一共七个 LINKIS-CG-ENGINECONN:38681 LINKIS-CG-ENGINECONNMANAGER:9102 引擎管理服务 LINKIS-CG-ENTRANCE:9104 计算治理入…

Vue开发小注意点

改bug 更改了配置项啥的,保存刷新发现没变,那就重启项目!!!! binding.value 和 e.target.value binding.value Day5 指令的值 e.target.value Day4 表单组件封装 binding.value 和 e.target.valu…

plt函数显示图片 在图片上画边界框 边界框坐标转换

一.读取图片并显示图片 %matplotlib inline import torch from d2l import torch as d2l读取图片 image_path ../data/images/cat_dog_new.jpg # 创建画板 figure d2l.set_figsize() image d2l.plt.imread(image_path) d2l.plt.imshow(image);二.给出一个(x左上角,y左上角,…

Flask 使用 JWT(三)flask-jwt-extended

如果想要在 flask 中使用 JWT ,推荐使用 flask-jwt-extended 插件。 使用 pip 安装这个扩展插件的最简单方法是: pip install flask-jwt-extended基本使用 在接下来的案例中,我们看一下基本使用。我们可以使用 create_access_token() 函数用来生成实际的 JWT token。@jwt_r…

K8S之使用yaml格式定义pod

mysql-pod.yaml # overView: # 1. web服务与db打包放在同一个pod中,本地通过localhost来访问,并附带存活性/可用性检测 # 2. 补充重启策略/镜像拉去策略 # 3. 对容器资源进行限制apiVersion: apps/v1 kind: Pod metadata:name: pub-oanamespace: hunte…

__declspec(novtable) 在C++

__declspec(novtable) 在C中接口中广泛应用. 不容易看到它是因为在很多地方它都被定义成为了宏. 比如说ATL活动模板库中的ATL_NO_VTABLE, 其实就是__declspec(novtable). __declspec(novtable) 就是让类不要有虚函数表以及对虚函数表的初始化代码, 这样可以节省运行时间和空间.…

服务注册与服务发现

服务注册与服务发现 Eureka的架构 Eureka客户端:使用了EnableEurekaClient注解的应用服务,如订单服务等,甚至Eureka本身也是一个客户端 Eureka服务端:使用了EnableEurekaServer注解的应用服务,该服务提供了注册表以及…

使用Git把项目上传到Gitee的详细步骤

1.到Git官网下载并安装 2.到Gitee官网进行注册,然后在Gitee中新建一个远程仓库 3.设置远程仓库的参数 4.返回Gitee查看仓库是否生成成功 5.新建一个文件夹作为你的本地仓库 6.将新建好的文件夹初始化成本地仓库 第一步:右键点击刚创建的本地仓库&#…

小程序实现一个 倒计时组件

小程序实现一个 倒计时组件 需求背景 要做一个倒计时,可能是天级别,也可能是日级别,时级别,而且每个有效订单都要用,就做成组件了 效果图 需求分析 需要一个未来的时间戳,或者在服务度直接下发一个未来…

NeuroFlash:AI文章写作与生成工具

【产品介绍 ​ 】 名称 NeuroFlash 上线时间 2015 具体描述 Neuroflash是一款基于人工智能的文本和图像生成器,可以帮助用户快速创建高质量的内容。Neuroflash拥有超过100种短文和长文的文本类型,涵盖了各种营销场景和需求。只需要输入简单的指示&#…

【Excel函数】Trim函数删除前后多余的空格

Excel 中的 TRIM 函数用于删除文本字符串两端多余的空格,只保留字符串内部的空格。这对于清理和规范化文本数据非常有用。 在使用Excel中使用TRIM可以删除内容前面和后面的空格字符,Trim的语法规则如下: A2trim(Text) text:要进…

最新ChatGPT网站源码+支持GPT4.0+支持Midjourney绘画+支持国内全AI模型

一、智能创作系统 SparkAi创作系统是基于国外很火的ChatGPT进行开发的Ai智能问答系统。本期针对源码系统整体测试下来非常完美,可以说SparkAi是目前国内一款的ChatGPT对接OpenAI软件系统。那么如何搭建部署AI创作ChatGPT?小编这里写一个详细图文教程吧&…