Linux之sed命令详解

文章目录

  • 🍊自我介绍
  • 🍊sed概述
  • 🍊sed语法讲解
    • 格式:
    • options 命令选项
    • {commmand}[flags]
  • 🍊场景训练


你的点赞评论就是对博主最大的鼓励
当然喜欢的小伙伴可以:点赞+关注+评论+收藏(一键四连)哦~


🍊自我介绍

  Hello,大家好,我是小珑也要变强(也是小珑),我是易编程·终身成长社群的一名“创始团队·嘉宾”“内容共创官” ,现在我来为大家介绍一下有关物联网-嵌入式方面的相关内容。


🍊sed概述

简介:
  我们之前的学习中,Vim 采用的是交互式文本编辑模式,你可以用键盘命令来交互性地插入、删除或替换数据中的文本。但本节要讲的 sed 命令不同,它采用的是流编辑模式,最明显的特点是,在 sed 处理数据之前,需要预先提供一组规则,sed 会按照此规则来编辑数据。
使用场景

· 超大文件处理;
· 对文件进行批量增加,替换等。
· 有规律的文本,例如 以分号,空格等分隔的日志文件等;

说明:
  sed 会根据脚本命令来处理文本文件中的数据,这些命令要么从命令行中输入,要么存储在一个文本文件中,此命令执行数据的顺序如下:
· 每次仅读取一行内容;
· 根据提供的规则命令匹配并修改数据。注意,sed 默认不会直接修改源文件数。据,而是会将数据复制到缓冲区中,修改也仅限于缓冲区中的数据;
·将执行结果输出。
  当一行数据匹配完成后,它会继续读取下一行数据,并重复这个过程,直到将文件中所有数据处理完毕。

在这里插入图片描述

🍊sed语法讲解

格式:

sed [options] '{command}{flags}' [filename]

注意:[]中的数据必须存在,{}内容可省略

options 命令选项

-e 脚本命令 该选项会将其后面的脚本命令添加到已有的命令中。 
-f 脚本文件 该选项会将其文件中的脚本命令添加到已有的命令中。
-n 只显示匹配的行
-i 直接对原文件进行操作,会修改原文件内容。sed命令默认不修改文件

{commmand}[flags]

sed内部常用命令

i:insert,在制定或匹配到的行前面添加新行内容为 string
a:append,在指定或匹配到的行后面追加新行,内容为string
d:delete,删除符合地址定界条件的的行
p: print,默认 sed 对模式空间内的处理完毕后,将输出的结果输出在标准输出p添加 p命令,相当于输出了原文,又一次输出了模式匹配处理后的内容。
s:查找并替换,默认只替换每行中第一次被模式匹配到的字符串,如果修饰符为 g,则为全部替换。
n:  1~512之间的数字 表示指定要替换的字符串出现第几次时才进行替换。
	例如,一行中有 3个 A,但用户只想替换第二个 A,这是就用到这个标记;
g:  对数据中所有匹配到的内容进行替换,如果没有8,则只会在第一次匹
	配成功时做替换操作8例如,一行数据中有 3个 A,则只会替换第一个 A;
p:  会打印与替换命令中指定的模式匹配的行。此标记通常与-n选项一起使
	用。

🍊场景训练

场景1:显示/etc/passwd第三行的信息

之前学习的命令展示:head -3 /etc/passwd | tail -1

sed 命令:
sed -n '3p' /etc/passwd  //3是行号,p是输出

场景2:在/etc/passwd中第一行前添加一行内容为“Good Good Study”

sed -e '1iGood Good Study' /etc/passwd 
//这里的1代表第一行,i代表插入的意思。表示在第1行前插入新的字符串。

场景3:把/etc/passwd中所有名字为root的字符串改为class

sed 's/旧字符串/新字符串/g' 文件名
功能:替换所有的字符串

sed 's/旧字符串、新字符串、数字' 文件名
功能:替换每行中第(数字)次出现该字符串的数据
sed -e 's/root/class/g' /etc/passwd

场景4:删除/etc/passwd中内容并列出行号,同时将2~5行删除

cat -n /etc/passwd | sed '2,5d'

场景5:把/etc/passwd文件中root用户的信息以带行号的形式重定向到log.txt 文件中;要求把log.txt文件中的root替换为linux,并且log.txt中保存替换后的文件

cat -n /etc/passwd > log.txt
sed -i 's/root/linux/g' log.txt

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

现代Web开发:React Hooks深入解析

💓 博客主页:瑕疵的CSDN主页 📝 Gitee主页:瑕疵的gitee主页 ⏩ 文章专栏:《热点资讯》 现代Web开发:React Hooks深入解析 现代Web开发:React Hooks深入解析 现代Web开发:React Hook…

大语言模型(LLM)入门级选手初学教程 III

指令微调 一、指令数据的构建 包括任务描述(也称为指令)、任务输入-任务输出以及可选的示例。 Self-Instruct 指令数据生成:从任务池中随机选取少量指令数据作为示例,并针对Chat-GPT 设计精细指令来提示模型生成新的微调数据…

算法工程师重生之第四十六天(字符串接龙 有向图的完全可达性 岛屿的周长)

参考文献 代码随想录 一、字符串接龙 题目描述 字典 strList 中从字符串 beginStr 和 endStr 的转换序列是一个按下述规格形成的序列: 1. 序列中第一个字符串是 beginStr。 2. 序列中最后一个字符串是 endStr。 3. 每次转换只能改变一个字符。 4. 转换过程…

魅力标签云,奇幻词云图 —— 数据可视化新境界

目录 目的原理详解建议 标签云:用于汇总生成的标签,一般是独立词汇运行前的准备代码示例 词云:对本文中出现频率较高的词,视觉上突出显示总结 目的 掌握文本与文档可视化:使用特定软件或编程语言(如Python…

云计算答案

情境一习题练习 一、选择题 1、在虚拟机VMware软件中实现联网过程,图中箭头所指的网络连接方式与下列哪个相关( C )。 A.仅主机模式 B.桥接 C.NAT D.嫁接 2、请问下图这个虚拟化架构属于什么类型( A …

【测试】【Debug】vscode pytest 找不到测试用例测试文件 行号部位没有绿色箭头

出现这种情况首先检查: 是否安装pytest点击vscode的这个图标如果其中都是空的,没有识别上,并且写好的.py测试文件的行号前面没有运行符号,要检查名称是否按照pytest的要求写,不然会识别不到。 命名规则注意&#xff1…

Echats柱状图的横坐标用图片显示

<!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>图片作为横坐标示例 - ECharts</title><!-…

D-ID 推出能模仿用户的头部动作以及实时互动的 AI 头像

D-ID 宣布推出两种新型 AI 头像 — — Express 和 Premium&#xff0c;旨在提升内容创作的灵活性和人性化。这些头像将为企业在营销、销售和客户支持等领域的视频制作提供便利。用户只需少量文本输入和视觉数据&#xff0c;即可生成更自然的商业视频。 Express 头像可以通过约一…

vue使用canves把数字转成图片验证码

<canvas id"captchaCanvas" width"100" height"40"></canvas>function drawCaptcha(text) {const canvas document.getElementById(captchaCanvas);const ctx canvas.getContext(2d);// 设置背景颜色ctx.fillStyle #f0f0f0;ctx.f…

mybatisgenerator生成mapper时报错

本想使用generator自动生成model和mapper&#xff0c;没想到插件执行的时候报如下错误。 Failed to execute goal org.mybatis.generator:mybatis-generator-maven-plugin:1.3.2:generate (default-cli) on project ywq-mybatis-tools: Execution default-cli of goal org.myb…

【无标题】西安交通大学提出少锚点的端到端车道线检测算法Polar R-CNN

Abstract 车道线检测在自动驾驶中是一个关键且充满挑战的任务&#xff0c;特别是在实际场景中&#xff0c;由于车道线可能因其他车辆而被遮挡、形状纤细且长度较长&#xff0c;检测难度增大。现有基于锚点的检测方法通常依赖于预设的锚点来提取特征&#xff0c;并随后对车道线…

Vue + Vant Picker实现省市区三级联动

一、picker选择器的数据由columns属性控制&#xff0c;columns中有几个元素就代表该选择器有多少级&#xff0c;通过change方法来给对应列赋值 this.columns [{values: citys,className: "column1",defaultIndex: 0,flex: 1, //控制每列的宽度},{values: citys[0].…

Windows安装配置node.js

下载安装 下载 访问下载 | Node.js 中文网&#xff0c;下载 推荐使用长期支持版本&#xff0c;但是此次是学习用的&#xff0c;使用最新版本试一下 安装 其实一路next基本就可以了&#xff0c;注意调整下安装目录 查看版本 C:\Users\PC>node -v v22.11.0 C:\Users\PC>…

Mac保护电池健康,延长电池使用寿命的好方法

使用Mac的过程中&#xff0c;如何延长电池的使用寿命是大家非常关心的问题&#xff0c;而养成一个良好的充电习惯能够有效的延长电池的使用寿命 避免过度充电和过度放电能够有效的保护电池&#xff0c;因此长时间的充电与长时间放点都不可取&#xff0c;但是在日常的使用过程中…

Kaggle生物信息学挑战:酶稳定性预测大赛

背景介绍 酶的稳定性是影响其实际应用的关键因素之一。通过定点突变可以改善酶的稳定性,但实验筛选稳定性突变体的成本较高。预测突变对酶稳定性的影响,加速筛选稳定性更高的酶突变体。 概念解释 X 残基&#xff1a;假设 它用 红色表示 &#xff0c; Y 残基&#xff1a;假设…

HarmonyOS NEXT 应用开发实战:十一、知乎日报项目接口使用指南

在本篇博文中&#xff0c;我们将带您完成一个简单的知乎日报项目&#xff0c;主要关注如何使用 h_request库与后端接口进行交互。我们将快速搭建起项目&#xff0c;并利用该库的优势提高开发效率。 选择 h_request 的理由 在进行 HarmonyOS 开发时&#xff0c;原始的 ohos.net…

STM32——串口

1、串口是什么 串口呢&#xff0c;作为硬件调试的时候&#xff0c;是很有用的&#xff0c;我觉得搞嵌入式是经常和串口打交道的 串口&#xff08;Serial Port&#xff09;是一种用于计算机和外部设备之间进行数据通信的接口。它通过串行通信方式传输数据&#xff0c;即一次只…

sparkSQL的UDF,最常用的regeister方式自定义函数和udf注册方式定义UDF函数 (详细讲解)

- UDF&#xff1a;一对一的函数【User Defined Functions】 - substr、split、concat、instr、length、from_unixtime - UDAF&#xff1a;多对一的函数【User Defined Aggregation Functions】 聚合函数 - count、sum、max、min、avg、collect_set/list - UDTF&#xff1a;…

水库大坝安全监测预警方法

一、监测目标 为了确保水库大坝的结构安全性和运行稳定性&#xff0c;我们需要采取一系列措施来预防和减少因自然灾害或其他潜在因素所引发的灾害损失。这不仅有助于保障广大人民群众的生命财产安全&#xff0c;还能确保水资源的合理利用和可持续发展。通过加强大坝的监测和维护…

Java:网络原理-TCP/IP

1.应用层 主要涉及两种情况: (1)使用大佬们已经创建好的应用层协议. (2)自己定义应用层协议. [1]明确前后端交互过程中,需要传递哪些信息. 比如开发一个外卖软件,展示"商家列表" 此处就需要先确定传递的信息是啥. a.请求:用户id; 用户所处的位置 b.响应:商家…