软件测试学习笔记丨Linux三剑客-sed

news2024/10/16 15:01:38

本文转自测试人社区,原文链接:https://ceshiren.com/t/topic/32521

一、简介

  • sed(Stream editor)是一个功能强大的文本流编辑器,主要用于对文本进行处理和转换。
  • 它适用于自动化处理大量的文本数据,能够支持诸如查找、替换、删除、插入等文本编辑操作。
  • sed是非交互式的,即它不会改变原始文件,除非显式指定。

二、sed基本用法与常用参数

  • 语法结构:sed [addr]x[options] 'expression' file
    • addr:指定操作的行范围,可以是具体行号或匹配的模式。
    • x:表示编辑命令,如s(替换)、d(删除)、p(打印)。
    • options:用于指定额外的操作,如-e-n-i等。

2.1 sed常用选项与参数

表达式描述
-e在同一个命令中执行多个sed表达式。
-n静默模式,取消默认的自动输出行为,只有手动指定p(打印)时才会输出。
s用于替换文本,基本语法为sed ‘s/pattern/replacement/’ file
-i直接修改文件,不输出到标准输出
-E扩展正则表达式(ERE)
–debug调试模式,显示每一行的处理结果


2.2 pattern表达式

1. 行数与行数范围匹配

sed 中,可以指定单行或多行进行操作。

  • 指定单行:匹配特定行进行编辑操作。sed '20p' file.txt
  • 指定行范围:通过行号范围操作一系列行。sed '30,35d' file.txt
  • 从某行到文件末尾sed '20,$d' file.txt

2. 正则表达式匹配

sed 可以使用正则表达式来匹配某一行或多行,/pattern/ 表示匹配某个正则模式。

  • 匹配包含模式的行sed '/pattern/p' file.txt
  • 删除匹配行sed '/error/d' file.txt
  • 替换匹配行sed '/hello/s/world/universe/' file.txt

3. 区间匹配

通过指定两个匹配模式的范围,sed 可以操作特定区间的行。格式为 //,//

  • 指定模式的区间匹配sed '/start/,/end/p' file.txt
  • 删除区间匹配的行sed '/BEGIN/,/END/d' file.txt
  • 对区间进行替换sed '/start/,/end/s/foo/bar/' file.txt

4. 多个匹配条件

可以使用逗号 , 来结合行号或正则表达式,以灵活匹配行数和模式。

  • 按行号和正则结合sed '10,/pattern/d' file.txt
  • 多行范围和模式结合sed '20,40s/foo/bar/' file.txt

2.3 sed action表达式

参数描述
p打印,通常结合-n参数:sed -n ‘2p’
s查找替换,s/REGEXP/REPLACEMENT/[FLAGS]
d删除,删除前两行:sed ‘1,2d’
a追加
c改变
i插入内容到匹配行之前
e执行命令
分组匹配 与字段提取`sed 's#([0-9])

2.4 行数操作

  • 打印特定行:sed -n 2p
  • 删除最后一行:sed $d

2.5 s表达式

  • s表示替换;
  • s后面的追加字符可以为任意字符;
  • g表示全局匹配;
  • &表示匹配内容。

2.6 反向引用

  • 使用()对数据进行分组;
  • 使用\1 \2反向引用分组。

在这里插入图片描述

推荐学习

【霍格沃兹测试开发】7天软件测试快速入门带你从零基础/转行/小白/就业/测试用例设计实战

【霍格沃兹测试开发】最新版!Web 自动化测试从入门到精通/ 电子商务产品实战/Selenium (上集)

【霍格沃兹测试开发】最新版!Web 自动化测试从入门到精通/ 电子商务产品实战/Selenium (下集)

【霍格沃兹测试开发】明星讲师精心打造最新Python 教程软件测试开发从业者必学(上集)

【霍格沃兹测试开发】明星讲师精心打造最新Python 教程软件测试开发从业者必学(下集)

【霍格沃兹测试开发】精品课合集/ 自动化测试/ 性能测试/ 精准测试/ 测试左移/ 测试右移/ 人工智能测试

【霍格沃兹测试开发】腾讯/ 百度/ 阿里/ 字节测试专家技术沙龙分享合集/ 精准化测试/ 流量回放/Diff

【霍格沃兹测试开发】Pytest 用例结构/ 编写规范 / 免费分享

【霍格沃兹测试开发】JMeter 实时性能监控平台/ 数据分析展示系统Grafana/Docker 安装

【霍格沃兹测试开发】接口自动化测试的场景有哪些?为什么要做接口自动化测试?如何一键生成测试报告?

【霍格沃兹测试开发】面试技巧指导/ 测试开发能力评级/1V1 模拟面试实战/ 冲刺年薪百万!

【霍格沃兹测试开发】腾讯软件测试能力评级标准/ 要评级表格的联系我

【霍格沃兹测试开发】Pytest 与Allure2 一键生成测试报告/ 测试用例断言/ 数据驱动/ 参数化

【霍格沃兹测试开发】App 功能测试实战快速入门/adb 常用命令/adb 压力测试

【霍格沃兹测试开发】阿里/ 百度/ 腾讯/ 滴滴/ 字节/ 一线大厂面试真题讲解,卷完拿高薪Offer !

【霍格沃兹测试开发】App自动化测试零基础快速入门/Appium/自动化用例录制/参数配置

【霍格沃兹测试开发】如何用Postman 做接口测试,从入门到实战/ 接口抓包(最新最全教程)

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

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

相关文章

ASML业绩暴雷,股价一度跌超16%

KlipC报道:当地时间10月15日,阿斯麦(ASML)原定于周三公布的三季度业绩报告由于技术原因被短暂地提前公布,业绩报告显示,阿斯麦第三季度总净销售额75亿欧元,毛利率50.8%,净利润21亿欧…

NoMachine安装使用

目录 前言 一、安装教程 1) 首先下载 NoMachine 软件 Linux arm64 deb 版本的安装包,然后安装到开发板的Linux 系统中 a. 由于 RK3588S 是 ARMv8 架构的 SOC,我们使用的系统为 Ubuntu 或者Debian,所以这里需要下载 NoMachine for ARM ARM…

C++ 模板(基础)

前言: C 中的模板是一个强大的功能,允许程序员编写通用的代码,这些代码可以处理任何数据类型。模板使得代码更加灵活和可重用,而不必为每种数据类型编写重复的代码。下面详细解释 C 中的模板 内容摘要: 本文内容包含…

vue使用jquery的ajax,页面跳转

一、引入jquery依赖 打开终端更新npm npm install -g npm 更新完后引入输入npm install jquery 加载完后 在最外层的package.json文件中加入以下代码 配置好后导入jquery 设置变量用于接收服务器传输的数据 定义ajax申请数据 服务器的Controller层传输数据 (…

传输层协议UDP详解

目录 一. 知识准备 1.1 传输层 1.2 重识端口号 二. UDP协议 三. UDP协议特点 一. 知识准备 1.1 传输层 前面已经讲过,HTTP协议是应用层协议,在此之前,我们短暂的认为HTTP是直接通过应用层与外界通信的。但是我们要知道&…

新手爬虫DAY1

这个错误信息表明在你的Python程序中,re.search() 函数没有找到预期的匹配项,因此返回了 None。当你尝试在 None 对象上调用 group(1) 方法时,Python 抛出了一个 AttributeError。 具体来说,错误发生在 pc.py 文件的第6行&#x…

《RECONX: RECONSTRUCT ANY SCENE FROM SPARSEVIEWS WITH VIDEO DIFFUSION MODEL》论文阅读

论文地址:https://arxiv.org/pdf/2408.16767 项目地址:GitHub - liuff19/ReconX: ReconX: Reconstruct Any Scene from Sparse Views with Video Diffusion Model ---------------------------------------------------------------------------------…

Open-WebUI

Open-WebUI特点⭐ ️直观的界面:聊天界面从 ChatGPT 中汲取灵感,确保用户友好的体验。响应式设计:在桌面和移动设备上享受无缝体验。⚡快速响应:享受快速响应的性能。轻松设置:使用 Docker 或 Kubernetes(…

【自然语言处理】Encoder-Decoder模型中Attention机制的引入

在 Encoder-Decoder 模型中引入 Attention 机制,是为了改善基本Seq2Seq模型的性能,特别是当处理长序列时,传统的Encoder-Decoder模型容易面临信息压缩的困难。Attention机制可以帮助模型动态地选择源序列中相关的信息,从而提高翻译…

硬盘文件误删:原因、恢复方案与预防措施

一、硬盘文件误删现象描述 在日常使用电脑的过程中,硬盘文件误删是一个常见且令人头疼的问题。许多用户在进行文件整理、删除无用资料或进行系统清理时,一不小心就可能将重要文件误删。这些误删的文件可能包括工作文档、学习资料、家庭照片、视频等&…

【含文档】基于Springboot+Vue的采购管理系统(含源码+数据库+lw)

1.开发环境 开发系统:Windows10/11 架构模式:MVC/前后端分离 JDK版本: Java JDK1.8 开发工具:IDEA 数据库版本: mysql5.7或8.0 数据库可视化工具: navicat 服务器: SpringBoot自带 apache tomcat 主要技术: Java,Springboot,mybatis,mysql,vue 2.视频演示地址 3.功能 系统定…

SpringBoot实现桂林旅游的智能推荐

3系统分析 3.1可行性分析 通过对本桂林旅游景点导游平台实行的目的初步调查和分析,提出可行性方案并对其一一进行论证。我们在这里主要从技术可行性、经济可行性、操作可行性等方面进行分析。 3.1.1技术可行性 本桂林旅游景点导游平台采用SSM框架,JAVA作…

基于Docker安装Grafana及其基本功能

Grafana是一款用Go语言开发的开源数据可视化工具,可以做数据监控和数据统计,带有告警功能。 拉取Grafana镜像 docker pull grafana/grafana 运行镜像 docker run -d -p 3000:3000 --namegrafana grafana/grafana 打开浏览器,访问 http://l…

【Vue】Vue2(10)

文章目录 1 过度与动画1.1 Test.vue1.2 Test2.vue1.3 Test3.vue1.4 TodoList_动画:MyItem.vue 2 配置代理服务器2.1 方法一2.2 方法二2.3 vue.config.js2.4 App.vue 3 github搜索案例3.1 静态页面3.2 Search.vue3.3 List.vue3.4 App.vue3.5 main.js3.6 github搜索案…

免费插件集-illustrator插件-Ai插件-路径点到点连线

文章目录 1.介绍2.安装3.通过窗口>扩展>知了插件4.功能解释5.总结 1.介绍 本文介绍一款免费插件,加强illustrator使用人员工作效率,实现简单路径内部点到点连线功能。首先从下载网址下载这款插件 https://download.csdn.net/download/m0_67316550…

打造卓越APP体验:13款界面设计软件推荐

你知道如何选择正确的UI设计软件吗?你知道设计美观的用户界面,及带来良好用户体验的APP,需要什么界面设计软件吗?基于APP界面的功能不同,选择的APP界面设计软件也会有所不同。然而,并不是要把所有APP界面设…

1.2.3 TCP IP模型

TCP/IP模型(接网叔用) 网络接口层 网络层 传输层 应用层 理念:如果某些应用需要“数据格式转换”“会话管理功能”,就交给应用层的特定协议去实现 tip:数据 局部正确不等于全局正确 但是,数据的 全局正…

docker (desktopcompose) download

docker docker-compose download 百度网盘获取离线包链接release-notes 参考dockerdocker-composewlspowershell

基于Spring Boot的大创项目成本控制系统

2相关技术 2.1 MYSQL数据库 MySQL是一个真正的多用户、多线程SQL数据库服务器。 是基于SQL的客户/服务器模式的关系数据库管理系统,它的有点有有功能强大、使用简单、管理方便、安全可靠性高、运行速度快、多线程、跨平台性、完全网络化、稳定性等,非常…

Linux下ClamAV源代码安装与使用说明

Linux下ClamAV源代码安装与使用说明 ClamAV(Clam AntiVirus)是一款开源的防病毒工具,广泛应用于Linux平台上的网络安全领域。它以其高效的性能和灵活的配置选项,成为网络安全从业人员的重要工具。ClamAV支持多线程扫描,可以自动升级病毒库,并且支持多个操作系统,包括Li…