当前位置: 首页 > news >正文

sed使用

概述

Linux sed 命令是利用脚本来处理文本文件。sed 可依照脚本的指令来处理、编辑文本文件。Sed 主要用来自动编辑一个或多个文件、简化对文件的反复操作、编写转换程序等。

语法

sed [-hnV][-e<script>][-f<script文件>][文本文件]

注意:-e是可以省略掉的,如果要省略的话,就需要将后面要执行的脚本放在引号里面。

参数说明

  • -e

动作说明

  • a :新增, a 的后面可以接字串,而这些字串会在新的一行出现(目前的下一行)~
  • c :取代, c 的后面可以接字串,这些字串可以取代 n1,n2 之间的行!
  • d :删除,因为是删除啊,所以 d 后面通常不接任何东东;
  • i :插入, i 的后面可以接字串,而这些字串会在新的一行出现(目前的上一行);
  • p :打印,亦即将某个选择的数据印出。通常 p 会与参数 sed -n 一起运行~
  • s :取代,可以直接进行取代的工作哩!通常这个 s 的动作可以搭配正则表达式!例如 1,20s/old/new/g 就是啦!

示例

  • 在test文件第四行之后添加alibaba输出
sed -e 4a\alibaba test
或者
sed '4a\alibaba' test 

注意:反斜杠可以用空格代替

  • 删除第三行到最后一行
nl testfile | sed '3,$d' 
  • 在第二行前加上alibaba
nl test | sed '2i alibaab'
  • 增加两行字,则需要使用反斜杠
nl test | sed '2a alibaba \
alibaba'
  • 将2-3行进行替换
nl test | sed '2,3c alibaba\
> alibaba'
  • 只打印1-3行
nl test | sed -n '1,3p'
  • 只打印含有kj的
nl test | sed -n '/kj/p'
  • 只打印不含有kj的
nl test | sed '/kj/d'
  • 找到kj对应的行,然后进行字符替换并输出
nl test | sed -n '/kj/{s/kj/alibaba/;p}'
  • 进行全局替换,不再对行进行处理

g 标识符表示全局查找替换,使 sed 对文件中所有符合的字符串都被替换,修改后内容会到标准输出,不会修改原文件

nl test | sed 's/dk/alibaba/g'
  • 选项i对文件进行修改,将所有的df替换成al
sed -i 's/df/ali/g' test
  • 显示bond0的ip地址
ifconfig bond0 | grep inet | sed 's/^.*inet//' | sed 's/netmas.*$//g'

这里的.*表示任意字符串开头,任意字符串结尾的数字,不加表示任意字符串开头,任意字符串结尾的数字,不加表示任意字符串开头,任意字符串结尾的数字,不加也是可以的
而^.*表示的是任意字符串开头的字符串,这样就把前面和后面都去掉了。

  • 多点编辑

多点编辑的时候就不能省略 -e选项了

nl test | sed -e '1,2d' -e 's/ali/ll/g' 

sed -i 可以直接对源文件进行修改,谨慎使用嗷。

相关文章:

sed使用

概述 Linux sed 命令是利用脚本来处理文本文件。sed 可依照脚本的指令来处理、编辑文本文件。Sed 主要用来自动编辑一个或多个文件、简化对文件的反复操作、编写转换程序等。 语法 sed [-hnV][-e<script>][-f<script文件>][文本文件]注意&#xff1a;-e是可以省…...

redhat9忘记root密码操作(普通用户也适用)

目录 一.编辑启动条目 二、按enter键 三、重新挂载/sysroot&#xff0c;并且修改/sysroot的权限为rw 四、将根目录修改到/sysroot 五、修改密码 5.1修改root密码 5.2 修改普通用户的密码 六、创建文件 七、退出 八、测试 一.编辑启动条目 进入以下页面的时候&#xff0…...

Android 五种启动模式小结

ActivityRecord、TaskRecord、ActivityStack区别 ActivityRecord对应着一个Activity实例&#xff0c;保存了Activity所有相关信息 TaskRecord指的是一个任务栈&#xff0c;里面包含多个ActivityRecord ActivityStack用于管理TaskRecord 五种启动模式 Standard模式 默认的启…...

算法竞赛ICPC、CCPC、NIO、蓝桥杯、天梯赛

算法竞赛前言一、为什么学习算法竞赛二、学习算法的阶段三、算法竞赛具体学习内容1、基础数据结构1.1、链表1.1.1、动态链表1.1.2、静态链表1.1.3、STL list1.2、队列1.2.1、STL queue1.2.2、手写循环队列1.2.3、双端队列和单调队列1.2.4、优先队列1.3、栈1.3.1、STL stack1.3.…...

图像分割技术及经典实例分割网络Mask R-CNN(含基于Keras Python源码定义)

图像分割技术及经典实例分割网络Mask R-CNN&#xff08;含Python源码定义&#xff09; 文章目录图像分割技术及经典实例分割网络Mask R-CNN&#xff08;含Python源码定义&#xff09;1. 图像分割技术概述2. FCN与语义分割2.1 FCN简介2.2 反卷积2.2 FCN与语义分割的关系3. Mask …...

元宇宙和医疗保健

让我们明确定义医疗保健领域的元宇宙 元宇宙这个概念已经有几十年的存在历史了&#xff0c;尽管当Facebook改名为Meta时&#xff0c;这个话题才成了头版头条。现在卫生部门的领导们也开始关注这个话题。 数字卫生领域对元宇宙的定义是如今的医疗科技主要是由医疗软件解决方案…...

iOS_从相机或相册里扫描二维码或条形码

文章目录1. 从相机里扫描1.1 申请相机权限1.2 创建Scanner1.3 开始扫描1.4 处理扫描结果2. 从相册里扫描2.1 获取相册权限2.2 打开相册2.3 获得选择结果2.4 解析相片中的二维码或条形码1. 从相机里扫描 1.1 申请相机权限 导入&#xff1a; import AVFoundation在项目的 Info.…...

Python 自动化指南(繁琐工作自动化)第二版:十六、使用 CSV 文件和 JSON 数据

原文&#xff1a;https://automatetheboringstuff.com/2e/chapter16/ 在第 15 章&#xff0c;你学习了如何从 PDF 和 Word 文档中提取文本。这些文件是二进制格式的&#xff0c;需要特殊的 Python 模块来访问它们的数据。另一方面&#xff0c;CSV 和 JSON 文件只是纯文本文件。…...

knife4j接口文档

knife4j是为Java MVC框架集成Swagger生成Api文档的增强解决方案,前身是swagger-bootstrap-ui,取名knife4j是希望它能像一把匕首一样小巧,轻量,并且功能强悍!其底层是对Springfox的封装&#xff0c;使用方式也和Springfox一致&#xff0c;只是对接口文档UI进行了优化。 核心功能…...

Windows机器安装SSH搭建,自己搞个局域网机房玩一玩

Windows机器安装SSH搭建为啥要装SSH安装OpenSSH使用 Windows 设置来安装 OpenSSHps脚本在线安装ps脚本离线安装其他二进制安装包安装为啥要装SSH 家里有多台Win机器&#xff0c;一台主机两个笔记本&#xff0c;本着不浪费的原则&#xff0c;打算把它们在平时的工作学习中利用起…...

二叉树的前序遍历(力扣144)

目录 题目描述&#xff1a; 解法一&#xff1a;递归法 解法二&#xff1a;迭代法 解法三&#xff1a;Morris 遍历 二叉树的前序遍历 题目描述&#xff1a; 给你二叉树的根节点 root &#xff0c;返回它节点值的 前序 遍历。 示例 1&#xff1a; 输入&#xff1a;root […...

【数据库管理】①实例与数据库

1.Oracle RDBMS 架构图 2. Oracle 体系结构 由此区分database和instance的区别 No.1.oracle serverdatabase instance2.databasedata file、control file、redo log file3.instancean instance accesses a database4.oracle memorySGA PGA(oracle的内存结构)5.instanceSGA …...

vba:单元格的选择,查找,合并,批注,SpecialCells,图形插入

一&#xff1a; 活动单元格&#xff1a;activecell,工作表中活动单元格只有一个 Sub activecells() a activecell.Address 取得活动单元格地址 Cells(2, 3).Activate 激活指定单元格 End Sub selection光标所选区域 Sub 光标所选区域() Selection 1 End Sub Sub …...

【内网安全】横向移动域控提权NetLogonADCSPACKDC永恒之蓝

文章目录章节点横向移动-系统漏洞-CVE-2017-0146(永恒之蓝)影响版本插件检测-横向移动CS联动MSF-检测&利用横向移动-域控提权-CVE-2014-6324横向移动-域控提权-CVE-2020-1472影响版本横向移动-域控提权-CVE-2021-42287前提条件影响版本python版本EXP利用过程C#版本EXP利用过…...

将本地项目上传到远程仓库的步骤

文章目录将本地项目上传到远程仓库的步骤1.进入想上传的项目文件夹2.初始化本地仓库3.添加该项目下的所有文件4.将文件添加到本地仓库中5.添加远程仓库6.将文件更新到远程仓库上7.将本地文件推送回到指定的远程仓库中将本地项目上传到远程仓库的步骤 1.进入想上传的项目文件夹…...

selenium+opencv实现模拟登陆(滑块验证码)

很多网站登录登陆时都要用到滑块验证码&#xff0c;在某些场景例如使用爬虫爬取信息时常常受到阻碍&#xff0c;想着用opencv的模板匹配试试能不能实现模拟登陆。本来觉得网上资料多应该还蛮容易&#xff0c;但实际上手还是搞了蛮久&#xff0c;在这里记录一下整个流程&#xf…...

辽宁申请互联网医院牌照流程

辽宁申请互联网医院牌照流程|沈阳市|大连市|鞍山市|抚顺市|本溪市|丹东市|锦州市|营口市|阜新市|辽阳市|盘锦市|铁岭市|朝阳市|葫芦岛市   很多的人对互联网医院都不是很了解&#xff0c;也不太清楚互联网医院牌照怎么申请&#xff0c;其实牌照申请每个地区都不太一样&#x…...

java实现布隆过滤器

什么是布隆过滤器 布隆过滤器&#xff08;Bloom Filter&#xff09;是1970年由布隆提出来的。 它实际上是由一个很长的二进制数组一系列hash算法映射函数&#xff0c;用于判断一个元素是否存在于集合中。 布隆过滤器可以用于检索一个元素是否在一个集合中。它的优点是空间效率和…...

gitlab部署及整合Jenkins持续构建(三)nexus私服的安装及实战、linux安装mysql

文章目录敏捷持续集成是什么&#xff1f;linux安装jdk和maven安装jdk安装mavenlinux安装nexus3.xnexus私服的使用编译安装mysql可能遇到的问题使用cmake时报错敏捷持续集成是什么&#xff1f; 持续集成是一种软件开发实践&#xff0c;即团队开发成员经常集成他们的工作&#x…...

一、Java基础(2)

本章概要 异常的分类及处理 异常的概念异常的分类处理异常的方式 反射机制 动态语言的概念反射机制的概念反射的作用Java 的反射 API反射的过程创建对象的两种方式Method 的 invoke 方法 1.2 异常的分类及处理 1.2.1 异常的概念 异常指在方法不能按正常方式完成时&#xf…...

从零到一:UniApp前端网页托管与自定义域名配置实战指南

1. 从零开始&#xff1a;UniApp前端网页托管全流程解析 第一次接触UniApp前端网页托管时&#xff0c;我也被各种专业术语搞得晕头转向。经过几个项目的实战&#xff0c;我发现这套流程其实就像租房子&#xff1a;你得先有个门牌号&#xff08;域名&#xff09;&#xff0c;再找…...

VINS-Mono跑EUROC数据集后,如何用evo工具包进行轨迹精度评估与可视化(附完整命令)

VINS-Mono轨迹精度评估实战&#xff1a;从EUROC数据集到evo工具包全流程解析 在完成VINS-Mono算法在EUROC数据集上的运行后&#xff0c;如何科学评估其轨迹精度成为算法优化和论文撰写的关键环节。本文将深入讲解使用evo工具包进行定量分析的完整流程&#xff0c;涵盖指标计算、…...

GitLab实战:如何用rebase -i优雅合并多个commit(附常见错误排查)

Git提交历史优化&#xff1a;交互式rebase高阶操作指南 1. 为什么需要整理Git提交历史 在团队协作开发中&#xff0c;我们经常会遇到提交历史杂乱无章的情况。想象一下这样的场景&#xff1a;你完成了一个新功能的开发&#xff0c;但在这个过程中产生了十几个零散的提交记录&am…...

保障AI安全:YOLOv12模型鲁棒性测试与对抗样本防御

保障AI安全&#xff1a;YOLOv12模型鲁棒性测试与对抗样本防御 在智能安防、自动驾驶这些关键领域&#xff0c;AI模型&#xff0c;尤其是像YOLOv12这样的目标检测模型&#xff0c;已经成为了核心的“眼睛”。我们依赖它来识别行人、车辆&#xff0c;做出至关重要的判断。但你想…...

嵌入式NTP客户端高精度时间同步实现

1. NTP客户端库深度解析&#xff1a;嵌入式系统中的高精度时间同步实现1.1 项目背景与工程痛点NTP&#xff08;Network Time Protocol&#xff09;是嵌入式设备实现网络时间同步的核心协议。在工业控制、数据采集、日志记录等场景中&#xff0c;毫秒级甚至亚毫秒级的时间精度直…...

OpenClaw私有化方案:Qwen3-VL:30B+飞书自动化助手实战

OpenClaw私有化方案&#xff1a;Qwen3-VL:30B飞书自动化助手实战 1. 为什么选择私有化AI助手 去年我接手了一个特殊项目&#xff1a;需要将公司内部的技术文档自动整理成知识库&#xff0c;并推送到飞书文档。这个需求看似简单&#xff0c;但涉及几个棘手问题&#xff1a;文档…...

从零开始:3小时掌握Arduino ESP32开发板完整安装与配置指南 [特殊字符]

从零开始&#xff1a;3小时掌握Arduino ESP32开发板完整安装与配置指南 &#x1f680; 【免费下载链接】arduino-esp32 Arduino core for the ESP32 项目地址: https://gitcode.com/GitHub_Trending/ar/arduino-esp32 想要快速上手ESP32物联网开发吗&#xff1f;无论你是…...

Cataclysm: Dark Days Ahead - 在末日废土中生存的终极指南

Cataclysm: Dark Days Ahead - 在末日废土中生存的终极指南 【免费下载链接】Cataclysm-DDA Cataclysm - Dark Days Ahead. A turn-based survival game set in a post-apocalyptic world. 项目地址: https://gitcode.com/GitHub_Trending/ca/Cataclysm-DDA 欢迎来到Cat…...

TouchGal Galgame社区终极指南:一站式游戏资源管理与交流平台

TouchGal Galgame社区终极指南&#xff1a;一站式游戏资源管理与交流平台 【免费下载链接】kun-touchgal-next TouchGAL是立足于分享快乐的一站式Galgame文化社区, 为Gal爱好者提供一片净土! 项目地址: https://gitcode.com/gh_mirrors/ku/kun-touchgal-next 还在为寻找…...

探索开源字体商用解决方案:思源宋体TTF的多场景应用与价值解析

探索开源字体商用解决方案&#xff1a;思源宋体TTF的多场景应用与价值解析 【免费下载链接】source-han-serif-ttf Source Han Serif TTF 项目地址: https://gitcode.com/gh_mirrors/so/source-han-serif-ttf 副标题&#xff1a;免费商用授权与多场景适配的专业中文字体…...