16_Shell好用工具:sed

news/2024/9/14 2:14:44/ 标签: linux, 服务器, 运维, Shell脚本, shell

16_Shell好用工具:sed

零、语法解析

sed [选项参数] [模式匹配/sed命令] 文件

命令说明
aadd,新增
iinsert,新增
cchange,修改
ssubstitute,替换
ddelete,删除
pprint, 打印 通常与 -n 连用

一、增(新增行)

1.1、【添加数据】指定行号后添加数据

shell">#第3行后添加一行
sed '3aHello World.' sed.txt

在这里插入图片描述

1.2、【添加数据】指定行号前添加数据

shell">#第3行前添加一行
sed '3iHello World.' sed.txt

在这里插入图片描述

1.3、【添加数据】指定内容行前后添加数据(前:i 后:a)

shell">#包含Holen的行之前添加一行
sed '/Holen/iHello World.' sed.txt#包含Holen的行之后添加一行
sed '/Holen/aHello World.' sed.txt

在这里插入图片描述

1.4、【添加数据】最后一行前后添加数据(前:i 后:a)

shell">#最后一行前添加一行
sed '$iHello World.' sed.txt#最后一行后添加一行
sed '$aHello World.' sed.txt

在这里插入图片描述

二、删(删除行)

2.1、【删除数据】删除指定行号数据

shell">#删除第二行数据
sed '2d' sed.txt

在这里插入图片描述

2.2、【删除数据】删除指定间隔行数据

shell">#从第一行开始,每隔两行删除行数据(删除奇数行数据 1、3、5...)
sed '1~2d' sed.txt

在这里插入图片描述

2.3、【删除数据】删除指定范围行数据

shell">#删除第1到第5行数据
sed '1,5d' sed.txt

在这里插入图片描述

2.4、【删除数据】删除数据时取反

shell">#删除第1到第5行数据 取反
sed '1,5!d' sed.txt

在这里插入图片描述

2.5、【删除数据】删除最后一行

shell">#删除最后一行
sed '$d' sed.txt

在这里插入图片描述

2.6、【删除数据】删除指定内容行

shell">#删除包含Holen的行
sed '/Holen/d' sed.txt

在这里插入图片描述

2.7、【删除数据】删除指定内容行到最后一行

shell">#删除包含Holen的行到最后一行,全删
sed '/Holen/,$d' sed.txt

在这里插入图片描述

2.8、【删除数据】删除指定内容行及下一行

shell">#删除包含Holen的行及下一行
sed '/Holen/,+1d' sed.txt

在这里插入图片描述

2.9、【删除数据】删除不匹配行

shell">#删除不包含Holen或者Happy的行
sed '/Holen\|Happy/!d' sed.txt

在这里插入图片描述

三、改(修改-整行 替换-行内数据)

3.1、【修改数据-整行】修改指定行

shell">#修改第一行为"Hello World"
sed '1cHello World.' sed.txt

在这里插入图片描述

3.2、【修改数据-整行】修改最后一行

shell">#修改最后一行为"Hello World"
sed '$cHello World.' sed.txt

在这里插入图片描述

3.3、【修改数据-整行】指定内容行修改

shell">#将包含Holen的行整体修改为China
sed '/Holen/cChina.' sed.txt

在这里插入图片描述

3.4、【替换数据-行内数据】每行指定内容数据替换

shell">#替换每行第1个出现的Holen为Ylia
sed 's/Holen/Ylia/' sed.txt#替换每行第2个出现的Holen为Ylia
sed 's/Holen/Ylia/2' sed.txt#替换每行所有的Holen为Ylia
sed 's/Holen/Ylia/g' sed.txt

在这里插入图片描述

3.5、【替换数据-行内数据】每行指定内容数据替换并写入文件

shell">#替换每行所有的Holen为Ylia 并 写入文件 sed_new.txt
sed 's/Holen/Ylia/gw sed_new.txt' sed.txt

在这里插入图片描述

3.6、【替换数据-行内数据】正则表达式数据替换

shell">#匹配包含H的行,并替换o后面内容为空
sed '/H/s/o*//g' sed.txt

在这里插入图片描述

3.7、【替换数据-行内数据】每行末尾添加数据

shell">#每行末尾添加 CH
sed '/s/$/& CH' sed.txt#这样也可以
sed 's/$/ CH/' sed.txt

在这里插入图片描述

3.8、【替换数据-行内数据】每行行首添加数据

shell">#每行行首添加 #
sed 's/^/# /' sed.txt

在这里插入图片描述

四、查(略)

不推荐,建议使用grep,不过多深究

五、其他重要命令

选项参数说明
-i修改内容同步更新源文件
-e多命令执行

5.1、多命令执行

shell">#删除第一行同时最后一行新增“Hi Holen”
#写法一:
sed -e '1d' -e '$aHi Holen' sed.txt#写法二:
sed '1d;$aHi Holen' sed.txt

在这里插入图片描述

5.2、源文件修改

shell">#第三行后添加Hello World 同时写入源文件
sed -i '3aHello world' sed.txt

在这里插入图片描述


http://www.ppmy.cn/news/1475886.html

相关文章

五、 计算机网络(考点篇)

1 网络概述和模型 计算机网络是计算机技术与通信技术相结合的产物,它实现了远程通信、远程信息处理和资源共享。计算机网络的功能:数据通信、资源共享、管理集中化、实现分布式处理、负载均衡。 网络性能指标:速率、带宽(频带宽度或传送线路…

Lua协程(同步的多线程)

1.coroutine.create( func ) 创建一个协程,返回co(coroutine),参数是一个函数,当调用resume时就唤醒co并调用函数 2.coroutine.resume(co, 函数参数们) 启动协程co并传入协程调用函数的参数,可以带回协程…

PHP恋爱话术微信小程序系统源码

💖恋爱高手的秘密武器!恋爱话术微信小程序,让情话信手拈来✨ 💭【开场白:恋爱路上的甜蜜助手】💭 还在为跟心仪的TA聊天时找不到话题而尴尬?或是担心自己说的每句话都显得那么“直男/女”&…

zookeeper和Kafka消息队列群集部署

消息队列概念 什么是消息队列 消息(Message)是指在应用间传送的数据消息队列(Message Queue)是一种应用间通信方式解决方法,确保消息的可靠传输 消息队列的特征 存储 将消息存储在某种类型的缓冲区中,…

电脑如何快速删除相同的文件?分享5款重复文件删除工具

您有没有发现最近电脑运行速度变慢了?启动时间变得更长,甚至完成简单任务也难以如常?这可能是因为重复文件堆积所致。我们发现,清理或移动这些重复的文件和文件夹可以产生惊人的效果。通过删除不必要的重复文件和垃圾文件&#xf…

传输层协议之UDP

1、端口号 我们在应用层创建的套接字,是需要通过bind()接口绑定我们的IP地址与端口号的,这是因为数据从传输层向上交付到应用层时,需要用端口号来查找特定的服务进程。一般在网络通信时,用IP地址标识一台主机,用端口号…

一文学会鉴别“套壳”ChatGPT模型

一文学会鉴别“套壳”ChatGPT模型 随着ChatGPT等明星模型的诞生,市场上也开始出现一些“套壳”现象,即部分模型表面标榜原创或先进,实则在核心算法上与知名模型高度相似。作为技术探索者,如何拨开迷雾,识别这些“李鬼…

蓝桥杯14小白月赛题解

直接输出pi/ti,for遍历 #include <iostream> using namespace std; #define int long long int a,b,c ; double t1.00; signed main() {cin>>a;int an0;for(int i1;i<a;i){cin>>b>>c;if(t>c*1.00/b){tc*1.00/b;ani;} }cout<<an<<e…

MYSQL--第八次作业

MYSQL–第八次作业 一、备份与恢复 环境搭建&#xff1a; CREATE DATABASE booksDB; use booksDB;CREATE TABLE books ( bk_id INT NOT NULL PRIMARY KEY, bk_title VARCHAR(50) NOT NULL, copyright YEAR NOT NULL );CREATE TABLE authors ( auth_id INT NOT NULL PRI…

老物件线上3D回忆展拓宽了艺术作品的展示空间和时间-深圳华锐视点

在数字技术的浪潮下&#xff0c;3D线上画展为艺术家们开启了一个全新的展示与销售平台。这一创新形式不仅拓宽了艺术作品的展示空间&#xff0c;还为广大观众带来了前所未有的观赏体验。 3D线上画展制作以其独特的互动性&#xff0c;让艺术不再是单一的视觉享受。在这里&#x…

大数据之路 读书笔记 Day6 离线数据开发之数据开发平台

回顾 Day5 数据同步遇到的问题与解决方案Day4 数据同步 1. 统一计算平台 1.1 MaxCompute概述 MaxCompute&#xff08;原名 ODPS&#xff0c;Open Data Processing Service&#xff09;是阿里云提供的一种快速、完全托管的EB级数据仓库解决方案。它为用户提供了海量数据存储和实…

STM32智能无人机控制系统教程

目录 引言环境准备智能无人机控制系统基础代码实现&#xff1a;实现智能无人机控制系统 4.1 数据采集模块 4.2 数据处理与控制算法 4.3 通信与网络系统实现 4.4 用户界面与数据可视化应用场景&#xff1a;无人机管理与优化问题解决方案与优化收尾与总结 1. 引言 智能无人机控…

[终端安全]-6 移动终端之应用程序安全

笔者在终端安全专题前面的文章中介绍了移动终端硬件安全和操作系统安全&#xff0c;本文主要介绍移动终端应用安全。在本文最前面&#xff0c;笔者想先解答一位朋友的疑问&#xff0c;为什么需要费心打造一个完整的面面俱到的安全体系&#xff1f; 1 移动终端安全的重要性 移…

C++——类和对象(上)

文章目录 一、类的定义1.类定义格式2.访问限定符3.类域 二、实例化1.实例化概念2.对象⼤⼩ 三、 this指针 一、类的定义 1.类定义格式 与定义结构体类似 class ST {//成员变量int val;//成员函数void print(){cout << val << endl;}};class为定义类的关键字&…

P2p网络性能测度及监测系统模型

P2p网络性能测度及监测系统模型 网络IP性能参数 IP包传输时延时延变化误差率丢失率虚假率吞吐量可用性连接性测度单向延迟测度单向分组丢失测度往返延迟测度 OSI中的位置-> 网络层 用途 面相业务的网络分布式计算网络游戏IP软件电话流媒体分发多媒体通信 业务质量 通过…

【机器学习】Exam4

实现线性不可分logistic逻辑回归 我们目前所学的都是线性回归&#xff0c;例如 y w 1 x 1 w 2 x 2 b y w_1x_1w_2x_2b yw1​x1​w2​x2​b 用肉眼来看数据集的话不难发现&#xff0c;线性回归没有用了&#xff0c;那么根据课程所学&#xff0c;我们是不是可以增加 x 3 x…

【Linux】Vim 使用教程

Linux - Vim Vim 是一款在 Linux 系统中广泛使用的文本编辑器&#xff0c;它是 Vi 编辑器的升级版。Vim 不仅功能强大&#xff0c;而且可高度定制化&#xff0c;是许多程序员和系统管理员的首选工具。以下是 Vim 在 Linux 系统中的安装、配置和使用过程的详细讲解。 附注&…

Gitea 仓库事件触发Jenkins远程构建

文章目录 引言I Gitea 仓库事件触发Jenkins远程构建1.1 Jenkins配置1.2 Gitea 配置引言 应用场景:测试、生产环境的项目自动构建和部署 手动构建和部署 Gitea 仓库事件触发Jenkins远程构建I Gitea 仓库事件触发Jenkins远程构建 Gitea支持用于仓库事件的Webhooks 1.1 Jenkin…

3-2 多层感知机的从零开始实现

import torch from torch import nn from d2l import torch as d2lbatch_size 256 # 批量大小为256 train_iter, test_iter d2l.load_data_fashion_mnist(batch_size) # load进来训练集和测试集初始化模型参数 回想一下&#xff0c;Fashion-MNIST中的每个图像由 28 28 784…

GraphQL在Postman中:释放API查询的强大潜能

&#x1f680; GraphQL在Postman中&#xff1a;释放API查询的强大潜能 Postman作为API开发和测试的领先工具&#xff0c;对GraphQL的支持为开发者提供了一种新的方式来查询和管理数据。GraphQL是一种查询语言&#xff0c;用于API&#xff0c;允许客户端明确指定他们需要哪些数…