软件测试|Linux三剑客之sed命令详解

简介

sed(Stream Editor)是一款流式文本编辑器,在 Linux 和类 Unix 系统中广泛使用。它的设计目的是用于对文本进行处理和转换,可以用于替换、删除、插入、打印等操作。sed 命令通过逐行处理文本,允许您使用简单的命令来编辑大量文本数据。本文将详细介绍 sed 命令的基本用法和一些常见的编辑操作。

基本语法

sed 命令的基本语法如下:

sed [options] 'command' input_file
  • options:可选参数,用于指定 sed 命令的行为。
  • 'command':用于指定编辑操作的命令,可以是单个命令或多个命令的组合。
  • input_file:要处理的输入文件名。

常用参数

下面是一些常见的 sed 命令选项:

  • -e:允许在命令行中指定多个编辑命令。
  • -i:直接在输入文件中进行编辑(原地编辑),而不是在标准输出上打印结果。
  • -n:禁止默认输出,只打印被处理的文本。

使用示例

下面是一些常用的 sed 命令:

  1. 替换文本
sed 's/pattern/replacement/' input_file

上述命令将在input_file 文件中查找第一个匹配的pattern 并替换为 replacement。如我们要将fruits.txt中的APPLE替换为Apple,如下:

sed 's/APPLE/Apple/' fruits.txt######## 
apple
Apple
banana
BANANA
ORANGE
orange
grape
Grape
good
Good
  1. 全局替换
sed 's/pattern/replacement/g' input_file

该命令将在 input_file 文件中查找所有匹配的 pattern 并替换为 replacement。比如我们要在fruits.txt中找到所有的orange并替换为peach

sed 's/orange/peach/g' fruits.txt#########
apple
APPLE
banana
BANANA
ORANGE
peach
grape
Grape
good
Good
apple
peach
peach
peach
  1. 替换特定行
sed 'ns/pattern/replacement/' input_file

此命令将在input_file 文件的第 n 行中查找匹配的pattern并替换为replacement。比如我们要将第4行的BANANA改为banana

sed '4s/BANANA/banana/' fruits.txt#######
apple
APPLE
banana
banana
ORANGE
orange
grape
Grape
good
Good
apple
orange
orange
orange
  1. 删除特定行
sed 'nd' input_file

该命令将删除 input_file 文件的第 n 行。比如我们要删除fruits.txt的第13行,命令如下:

sed '13d' fruits.txt ########
apple
APPLE
banana
BANANA
ORANGE
orange
grape
Grape
good
Good
apple
orange
orange
  1. 插入文本
sed 'ni\Insert this line' input_file

此命令将在 input_file 文件的第 n 行之前插入新行 "Insert this line"。比如我们要在fruits.txt的第5号插入mango,命令如下:

sed '5i\mango' fruits.txt #########
apple
APPLE
banana
BANANA
mango
ORANGE
orange
grape
Grape
good
Good
apple
orange
orange
orange

sed结合正则表达式

sed 支持强大的正则表达式,可以实现更复杂的模式匹配和处理。我们可以在 sed 命令中使用正则表达式来匹配文本并进行编辑操作。

  1. 替换文件中的所有 "orange":
sed 's/orange/mango/g' fruits.txt######
apple
APPLE
banana
BANANA
ORANGE
mango
grape
Grape
good
Good
apple
mango
mango
mango

上述命令将在 fruits.txt 文件中将所有 "orange" 替换为 "mango"。

  1. 删除包含 "banana" 的行:
sed '/banana/d' fruits.txt#######
apple
APPLE
BANANA
ORANGE
orange
grape
Grape
good
Good
apple
orange
orange
orange

此命令将从 fruits.txt 文件中删除所有包含 "banana" 的行。

  1. 在文件开头插入标题:
sed '1i\Title of Fruits' fruits.txt#######
Title of Fruits
apple
APPLE
banana
BANANA
ORANGE
orange
grape
Grape
good
Good
apple
orange
orange
orange

此命令将在 fruits.txt 文件的开头插入一行 "Title of Fruits"。

总结

sed 命令是一款强大的流式文本编辑器,可用于对文本进行替换、删除、插入等操作。通过使用简单的命令和正则表达式,您可以高效地处理大量文本数据。在本文中,我们介绍了 sed 命令的基本用法和一些常见的编辑操作,希望这能帮助您更好地利用 sed 命令处理和转换文本。

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你! 

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

.mkp勒索病毒数据怎么处理|数据解密恢复

导言: 在数字时代,勒索病毒如[datastorecyberfear.com].mkp [hendersoncock.li].mkp [myersairmail.cc].mkp正成为企业和个人的噩梦。本文将介绍[datastorecyberfear.com].mkp [hendersoncock.li].mkp [myersairmail.cc].mkp勒索病毒的特点、如何恢复被…

HTML JavaScript 康威生命游戏

<!DOCTYPE html> <html> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>康威生命游戏</title><style>body {font-family: Arial, sa…

mongodb基本命令操作

1.创建数据库 语法 use 数据库名字例如:创建hero数据库 use hero查询当前数据库 db如果想查询所有的数据库 show dbs发现并没有刚刚创建的数据库,如果要显示创建的数据库,需要向表中插入一条记录 db.hero.insert({name: "zs",age: 20,country: "china&quo…

kubernetes kubeadm 集群升级(1.26.1 - 1.27.1)

kubernetes 升级 只能一个大版本大版本升级&#xff0c;也就是1.26.1-1.27.1再进行1.27.1-1.28.1 不能跳版本 升级流程 驱逐master 上的pod&#xff0c;且不可调度 kubectl drain master --ignore-daemonsets# 安装新版本的kubeadm yum install -y kubeadm-1.27.1-0 --disa…

深入理解Java源码:提升技术功底,深度掌握技术框架,快速定位线上问题

为什么要看源码&#xff1a; 1、提升技术功底&#xff1a; 学习源码里的优秀设计思想&#xff0c;比如一些疑难问题的解决思路&#xff0c;还有一些优秀的设计模式&#xff0c;整体提升自己的技术功底 2、深度掌握技术框架&#xff1a; 源码看多了&#xff0c;对于一个新技术…

[NSSRound#3 Team]This1sMysql

[NSSRound#3 Team]This1sMysql 源码 <?php show_source(__FILE__); include("class.php"); $conn new mysqli();if(isset($_POST[config]) && is_array($_POST[config])){foreach($_POST[config] as $key > $val){$value is_numeric($var)?(int)$…

软件测试概念及分类整理汇总

前言 测试小伙伴在谈论软件测试分类&#xff0c;五花八门的分类&#xff0c;眼花缭乱。因为将各个维度划分的内容都整到一块了&#xff0c;在加上各自不同的见解与补充&#xff0c;各种冲突...... Findyou我经过多年测试总结基本定为4类测试(最多5类&#xff0c;自动化或者兼容…

Flutter 监听前台和后台切换的状态

一 前后台的切换状态监听 混入 WidgetsBindingObserver 这个类&#xff0c;这里提供提供了程序状态的一些监听 二 添加监听和销毁监听 overridevoid initState() {super.initState();//2.页面初始化的时候&#xff0c;添加一个状态的监听者WidgetsBinding.instance.addObserver…

多级缓存、OpenResty缓存、Redis分布式缓存、进程缓存

目录标题 一、预期表现二、环境配置1、nginx环境2、OpenResty环境3、redis环境3.1 安装redis3.2 配置启动命令3.3 配置主从3.4 哨兵 4、进程缓存环境 三 、主要编码工作3.1、缓存主要问题解决3.1.1 缓存穿透3.1.2 缓存雪崩3.1.3 缓存击穿 3.2、OpenResty编码3.2.1 openresty/ng…

有什么不同种类的葡萄酒?

当大自然完成了它的工作&#xff0c;葡萄收获了&#xff0c;酒窖主人的任务就是把葡萄园里达到的高质量带给成品酒。《葡萄酒法》将优质葡萄酒分为三类&#xff0c;白葡萄酒、红葡萄酒和玫瑰红葡萄酒&#xff0c;葡萄品种和生产流程被精确定义。 白葡萄酒新鲜&#xff0c;果香浓…

如何克隆驱动器,不同的操作系统有不同的推荐软件

你需要将Windows或macOS安装迁移到新驱动器吗?你可以使用服务备份文件,也可以创建数据的完整一对一副本。通过克隆你的驱动器,你可以创建一个精确的副本。 一些业务级别的备份服务,如IDrive和Acronis,具有内置的磁盘克隆功能,是对正常文件备份的补充。但对于一次性克隆(…

C++ 复杂性 – 为什么你会觉得 C++ 复杂?

C 是否真的复杂因人而异&#xff0c;但多数人都会认同这一观点。“为什么你觉得 C 复杂”这一问题的答案自然也十分主观&#xff0c;但这是个非常有趣的问题&#xff0c;而且会得到各种不同答案。我们或许会认为&#xff1a; 在教授一些功能时可能需要采取更好的方法部分领域可…

用于查询性能预测的计划结构深度神经网络模型--大数据计算基础大作业

用于查询性能预测的计划结构深度神经网络模型 论文阅读和复现 24.【X1.1】 在关系数据库查询优化领域&#xff0c;对查询时间的估计准确性直接决定了查询优化结果&#xff0c;进而影响到数据库整体的查询效率。但由于数据库自身的复杂性&#xff0c;查询时间受到数据分布、数据…

Unity中URP下使用屏幕坐标采样深度图

文章目录 前言一、Unity使用了ComputeScreenPos函数得到屏幕坐标1、 我们来看一下这个函数干了什么2、我们看一下该函数实现该结果的意义 二、在Shader中使用&#xff08;法一&#xff09;1、在Varying结构体中2、在顶点着色器中3、在片元着色器中 三、在Shader中使用&#xff…

独立式键盘控制的4级变速流水灯

#include<reg51.h> // 包含51单片机寄存器定义的头文件 unsigned char speed; //储存流水灯的流动速度 sbit S1P1^4; //位定义S1为P1.4 sbit S2P1^5; //位定义S2为P1.5 sbit S3P1^6; //位定义S3为P1.6 sbit S4P1^7; //位…

rime中州韵小狼毫 日期/农历 时间 事件 节气 滤镜

网络上但凡提到 rime中州韵小狼毫须鼠管输入法&#xff0c;总少不了智能时间&#xff0c;日期等炫技&#xff0c;可见这个便捷时间/日期输入功能是多么的受欢迎。作者也不落窠臼&#xff0c;今天为大家带来的分享就是 时间日期 滤镜。 先睹为快 在正文开始前&#xff0c;我们…

7 种常见的前端安全攻击

文章目录 七种常见的前端攻击1.跨站脚本&#xff08;XSS&#xff09;2.依赖性风险3.跨站请求伪造&#xff08;CSRF&#xff09;4.点击劫持5.CDN篡改6. HTTPS 降级7.中间人攻击 随着 Web 应用程序对业务运营变得越来越重要&#xff0c;它们也成为更有吸引力的网络攻击目标。但不…

探讨JS混淆技术及其加密解密实例

引言 在当前计算机科学领域中&#xff0c;保护软件代码的安全性和隐私性变得愈发重要。为了防止黑客攻击和恶意软件分析&#xff0c;开发人员采用各种技术来混淆和加密其代码&#xff0c;其中包括JS混淆技术。本文将介绍JS混淆技术的原理和应用&#xff0c;并提供一些相关的加密…

HTML5+CSS3小实例:弹出式悬停效果

实例:弹出式悬停效果 技术栈:HTML+CSS 效果: 源码: 【HTML】 <!DOCTYPE html> <html lang="zh-CN"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><m…

Python解析XML,简化复杂数据操作的最佳工具!

更多Python学习内容&#xff1a;ipengtao.com XML&#xff08;可扩展标记语言&#xff09;是一种常见的文本文件格式&#xff0c;用于存储和交换数据。Python提供了多种库和模块&#xff0c;用于解析和操作XML文件。本文将深入探讨如何使用Python操作XML文件&#xff0c;包括XM…