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

本文转自测试人社区,原文链接: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 做接口测试,从入门到实战/ 接口抓包(最新最全教程)

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

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

相关文章

九、pico+Unity交互开发——触碰抓取

一、VR交互的类型 Hover(悬停) 定义:发起交互的对象停留在可交互对象的交互区域。例如,当手触摸到物品表面(可交互区域)时,视为触发了Hover。 Grab(抓取) 概念&#xff…

记录一个容易混淆的 Spring Boot 项目配置文件问题

记录一个容易混淆的 Spring Boot 项目配置文件问题 去年,我遇到了这样一个问题: 在这个例子中,由于密码 password 以 0 开头,当它被 Spring Boot 的 bean 读取时,前导的 0 被自动去掉了。这导致程序无法正确读取密码。…

【Next.js 项目实战系列】07-分配 Issue 给用户

原文链接 CSDN 的排版/样式可能有问题,去我的博客查看原文系列吧,觉得有用的话,给我的库点个star,关注一下吧 上一篇【Next.js 项目实战系列】06-身份验证 分配 Issue 给用户 本节代码链接 Select Button​ # /app/issues/[i…

MySQL 查找连续相同名称的记录组,并保留每组内时间最大的一条记录

要求:查找连续相同名称的记录组,并保留每组内时间最大的一条记录,同时计算每组记录的 num 总和。 今天有人问了我一个问题,大致就是下面这样的数据结构(原谅我实在不知道怎么描述这个问题) 然后需要得到下面…

【C++】C++多态世界:从基础到前沿

【C】C多态世界:从基础到前沿 多态的定义及实现1. 虚函数2. 虚函数的重写3. C11 override 和 final重载、覆盖(重写)、隐藏(重定义)的对比(关键) 抽象类1. 概念2. 接口继承和实现继承 多态的原理1虚函数表2. 虚函数存在哪的?虚表存…

与ai一起作诗(《校园清廉韵》)

与ai对话犹如拷问自己的灵魂,与其说ai助力还不如说在和自己对话。 (笔记模板由python脚本于2024年10月19日 19:18:33创建,本篇笔记适合喜欢python和诗歌的coder翻阅) 【学习的细节是欢悦的历程】 Python 官网:https://www.python.org/ Free&…

基于Django的推荐系统、人脸识别登录、微信支付Demo、打卡门禁系统

基于Django的推荐系统、人脸识别登录、微信支付Demo、打卡门禁系统 1、推荐系统 图书管理、电影推荐、音乐推荐、在线课程选修、旅游推荐系统 图书管理点我跳转 电影管理点我跳转 课程管理点我跳转 2、算法 基于用户协同过滤推荐、物品协同过滤推荐、神经网络推荐、随机森…

Linux中如何理解一切皆文件

根据之前的学习我们会有一些少许的疑惑,我们的stdin ,stdout,stderr访问的是键盘显示器,然而键盘显示器等他们都有一个共同的特点就是他们都是外设,那么这些外设是怎么被看成是文件的呢? 看图可以知道硬件的…

Jmeter 实战 JDBC配置

​ JDBC JDBC(Java Database Connectivity)是一种用于执行SQL语句的Java API。通过这个API,可以直接连接并执行SQL脚本,与数据库进行交互。 使用JMeter压力测试时,操作数据库的场景 在使用JMeter进行接口压力测试时…

【去哪儿-注册安全分析报告-缺少轨迹的滑动条】

前言 由于网站注册入口容易被黑客攻击,存在如下安全问题: 1. 暴力破解密码,造成用户信息泄露 2. 短信盗刷的安全问题,影响业务及导致用户投诉 3. 带来经济损失,尤其是后付费客户,风险巨大,造…

什么是分库分表?为什么要分库分表?什么时候需要分库分表?怎么样拆分?(数据库分库分表详解)

文章目录 1、什么是分库分表?1.1、分库分表的概念1.2、分库分表的方式1.2.1、垂直分库1.2.2、垂直分表1.2.3、水平分库1.2.4、水平分表 2、为什么要分库分表?3、什么时候需要分库分表?4、分库分表的数据路由4.1、数据路由的目的4.2、数据路由…

【Linux】磁盘文件系统(inode)、软硬链接

文章目录 1. 认识磁盘1.1 磁盘的物理结构1.2 磁盘的逻辑结构 2. 引入文件系统2.1 EXT系列文件系统的分区结构2.2 inode 3. 软硬链接3.1 软链接3.2 硬链接 在讲过了内存文件系统后,我们可以知道文件分为两种: 打开的文件(内存中)未…

VMamba:视觉SSM

论文标题:VMamba: Visual State Space Model 论文地址:https://arxiv.org/pdf/2401.10166 摘要 VMamba 是一个视觉骨干网络,基于状态空间模型(SSM),其复杂度是线性的。该架构的核心是视觉状态空间&#xff…

uniapp学习(007-2 壁纸项目:详细设计css代码较多)

零基础入门uniapp Vue3组合式API版本到咸虾米壁纸项目实战,开发打包微信小程序、抖音小程序、H5、安卓APP客户端等 总时长 23:40:00 共116P 此文章包含第70p-第p78的内容 文章目录 客服消息按钮的open-type属性添加客服设置按钮 ifdef和ifndef 实现多端匹配语法实…

【数据结构笔记】优先级队列PriorityQueue

堆序性质:除了根节点,其他节点都不大(小)于父节点 进而根节点是最大(小)堆的最大(小)元 完全二叉堆 物理上是Vector 逻辑上是完全二叉树 层次遍历序列与物理存储顺序相同Rank为…

阅读笔记 Marketing Management Chapter 12

来源: Marketing Management, Kotler and Keller (2016), 15th edition Chapter 12 Addressing Competition and Driving Growth 本章围绕以下问题展开: 为什么公司发展核心业务很重要? 市场领导者如何扩大整个市场并捍卫市场份额? 市场挑…

Go_Parser部署、使用与原理分析

文章目录 前言1、概述2、安装与使用2.1、源码安装2.1.1、部署系统依赖组件2.1.1.1、部署IDA Pro 7.5 SP32.1.1.2、部署Python 3.9.132.1.1.3、部署Go 1.13.1 2.1.2、使用源码安装系统 2.2、使用方法2.2.1、准备测试程序2.2.2、创建IDA Pro项目2.2.3、使用Go_Parser解析二进制程…

【毕业设计】基于SpringBoot的网上商城系统

前言 🔥本系统可以选作为毕业设计,运用了现在主流的SSM框架,采用Maven来帮助我们管理依赖,所选结构非常合适大学生所学的技术,非常合适作为大学的毕业设计,难以适中。 🔥采用技术:Sp…

『Mysql集群』Mysql高可用集群之读写分离(二)

前言 主从复制: 解决了Mysql的单点故障问题以及提高MySQL的整体服务性能. 读写分离: 解决的是数据库的读性能问题,分担主库的压力,提高系统的可用性和稳定性。 分库分表: 数据库分表可以解决单表海量数据的查询性能问题,分库可以解决单台数据库的并发…

libaom 编解码项目编码接口文件介绍

对外头文件: 编码端:aom/aom_encoder.h、aom/aomcx.h解码端:aom/aom_decoder.h、aom/aomdx.h aom/aom_encoder.h 该头文件包了aom/aom_codec.h、aom/aom_external_partition.h头文件介绍:当前文件描述了应用程序与视频编码器算法之…