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

软件测试学习笔记丨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 做接口测试,从入门到实战/ 接口抓包(最新最全教程)


http://www.kler.cn/a/354942.html

相关文章:

  • 细说STM32F407单片机轮询方式读写SPI FLASH W25Q16BV
  • 全面掌握 AutoGluon:从入门到生产环境的实践指南
  • 电脑出现 0x0000007f 蓝屏问题怎么办,参考以下方法尝试解决
  • layui动态拼接生成下拉框验证必填项失效问题
  • VSCode 搭建Python编程环境 2024新版图文安装教程(Python环境搭建+VSCode安装+运行测试+背景图设置)
  • 数学竞赛网站:构建互动学习的网络平台
  • 【实战篇】用SkyWalking排查线上[xxl-job xxl-rpc remoting error]问题
  • 95后研究员4个博士学位 本人发声
  • 如何通过自然外链提升外贸网站权重?
  • Apache SeaTunnel 2.3.8版本正式发布!
  • Jupyter Notebook汉化(中文版)
  • uniapp的移动端骨架屏组件开发应用
  • Java重修笔记 TCP 网络通信编程 - 传输文件
  • 【计算机网络 - 基础问题】每日 3 题(四十五)
  • 供应商管理是什么?
  • 瘦客户机介绍
  • 智能时代03学习日记
  • 自监督学习:引领机器学习的新革命
  • 电脑显示未安装任何音频输出设备怎么处理?
  • SQL中GROUP BY 和 HAVING 子句中使用 NULL 条件问题
  • Oracle实际需要用到但常常被忽略的函数
  • 3D Slicer 教程一
  • 【 ACM独立出版】第二届通信网络与机器学习国际学术会议(CNML 2024,10月25-27)
  • 01.单例模式设计思想
  • # linux从入门到精通-从基础学起,逐步提升,探索linux奥秘(十三)--权限设置注意事项和属主属组设置sudo操作
  • Google play开发者账号被封,申诉就有机会,别不信