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

news2024/9/26 1:18:12

简介

grep是一款在 Linux 和类 Unix 系统中广泛使用的文本搜索工具。它的名字来源于 Global Regular Expression Print(全局正则表达式打印),它的主要功能是根据指定的模式(正则表达式)在文本文件中搜索并打印匹配的行。grep 非常强大且灵活,可以用于日志分析、文件过滤、代码搜索等多种场景。本文将详细介绍 grep 命令的基本用法和一些常见的选项。

基本语法

grep 命令的基本语法如下:

grep [options] pattern [file...]
  • pattern:要搜索的模式,可以是普通文本字符串或正则表达式。
  • file:要在其中搜索模式的文件名。可以指定一个或多个文件名,如果未指定文件名,则默认从标准输入中读取数据。

常用参数

下面是一些 grep 命令中常用的选项:

  • -i:忽略大小写,使搜索不区分大小写
  • -v:反向匹配,只输出不包含模式的行
  • -n:显示匹配行的行号
  • -r:递归搜索,对目录进行递归搜索匹配的模式
  • -l:只显示包含匹配模式的文件名,而不显示匹配的行
  • -w:只匹配整个单词,而不是部分匹配

查看完整的grep命令信息,可以输入man grep进行查看。

使用示例

我们在demo文件夹下创建了一个fruits.txt的文件,文件内容如下:

apple
APPLE
banana
BANANA
ORANGE
orange
grape
Grape
  1. 在文件中搜索特定内容,比如我们要搜索文件中的apple字段
grep "apple" fruits.txt

############
apple

上面的命令将在 fruits.txt 文件中搜索包含字符串 "apple" 的行,并将匹配的行打印出来。

  1. 忽略大小写搜索,比如我们要搜索文件中的orange,并且忽略大小写
grep -i "orange" fruits.txt
#############
ORANGE
orange
  1. 输出不包含目标字段的行,比如我们不想展示banana
grep -v "banana" fruits.txt

############
apple
APPLE
BANANA
ORANGE
orange
grape
Grape

该命令将从 fruits.txt 文件中搜索不包含 banana 的行,并将这些行打印出来。

注:该命令自动忽略大小写

  1. 显示匹配行的行号,同步输出结果的行号
grep -n "grape" fruits.txt

###########
7:grape

该命令将在 fruits.txt 文件中搜索包含 grape的行,并在每行前面显示行号。

grep 结合正则表达式

grep 还支持强大的正则表达式搜索,允许更复杂和灵活的模式匹配。例如:

  1. 使用元字符:
grep "a.e" file.txt

########
grape
Grape

上述命令将匹配 "ape"等字符串,因为 . 是正则表达式中的元字符,匹配任何一个字符。

  1. 使用字符类:
grep "[aeiou]" file.txt

#######
apple
banana
orange
grape
Grape

该命令将匹配包含任何元音字母的行。

  1. 使用数字计数
grep "p\{2\}" fruits.txt

#######
apple

此命令将匹配包含两个连续字母 "p" 的行。

总结

grep 命令是 Linux 和类 Unix 系统中非常有用的文本搜索工具。它可以根据指定的模式在文本中搜索并打印匹配的行,还支持正则表达式搜索,使其功能更加强大和灵活。通过学习和熟练掌握 grep 命令的用法,我们可以更高效地处理文本数据,加快查找和过滤过程。

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

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

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

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

相关文章

JavaScript异常处理实战

前言 之前在对公司的前端代码脚本错误进行排查,试图降低 JS Error 的错误量,结合自己之前的经验对这方面内容进行了实践并总结,下面就此谈谈我对前端代码异常监控的一些见解。 本文大致围绕下面几点展开讨论: JS 处理异常的方式…

抖音在线查权重系统源码,附带查询接口

抖音权重在线查询只需输入抖音主页链接,即可查询作品情况。 搭建教程 上传源码并解压 修改数据库“bygoukai.sql” 修改“config.php” 如需修改水印请修改第40行 如需修改限制次数,请修改第156行 访问域名user.php即可查看访问用户,停…

学习笔记——C++运算符之赋值运算符

上次我们说到C的运算符共有四种&#xff0c;分别是算术运算符&#xff0c;赋值运算符&#xff0c;比较运算符和逻辑运算符 &#xff0c;下面介绍赋值运算符&#xff0c;赋值运算符主要的种类及作用如下表所示。 #include<bits/stdc.h> using namespace std; int main(){…

MediaPipeUnityPlugin(最新版)摇摆拳人脸识别

1、从https://github.com/homuler/MediaPipeUnityPlugin 下载Release Package 目前是MediaPipeUnity.0.12.0.unitypackage 2、导入Unity工程 3、打开Face Detection场景&#xff0c;做一些设置修改 1、打开Bootstrap&#xff0c;图像源改成Video&#xff0c;把Solution拖拽到…

车辆运动学方程推导和代码实现

文章目录 1. 运动学方程2. 模型实现 1. 运动学方程 自行车模型&#xff08;Bicycle Model&#xff09;是车辆数字化模型中最常见的一种运动学模型。其除了可以反映车辆的一些基础特性外&#xff0c;更重要的是简单易用。通常情况下我们会把车辆模型简化为二自由度的自行车模型…

Vue 中的 ref 与 reactive:让你的应用更具响应性(中)

&#x1f90d; 前端开发工程师&#xff08;主业&#xff09;、技术博主&#xff08;副业&#xff09;、已过CET6 &#x1f368; 阿珊和她的猫_CSDN个人主页 &#x1f560; 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 &#x1f35a; 蓝桥云课签约作者、已在蓝桥云…

SD点击扩展的可用 想下载其他插件的时候报错

这个错误通常是由于命令行标志禁用了扩展访问所导致的。 您可以尝试在启动WebUI的时候添加一个参数–enable-insecure-extension-access&#xff0c;或者在webui-user.sh的export COMMANDLINE_ARGS参数中增加以下参数 --enable-insecure-extension-access。

Linux第1步_VMware软件安装

1、双击“VMware-workstation-full-15.5.0-14665864”&#xff0c;得到下面的界面&#xff1a; 2、等待几分钟&#xff0c;得到下面的界面&#xff1a; 3、点击“下一步” 4、勾选“我接受许可协议中的条款(A)”&#xff0c;见下图&#xff1a; 5、点击“下一步”&#xff0c;得…

Android 集成vendor下的模块

Android 集成vendor下的模块 &#xff0c;只需要在 PRODUCT_PACKAGES 加上对应的模块名&#xff0c;编译的时候就会执行对应模块的bp文件&#xff0c;集成到系统中 PRODUCT_PACKAGES \WallpaperPicker \Launcher3 \com.nxp.nfc Android11 Framework Vendor下自定义系统…

『C++成长记』日期类的实现

&#x1f525;博客主页&#xff1a;小王又困了 &#x1f4da;系列专栏&#xff1a;C &#x1f31f;人之为学&#xff0c;不日近则日退 ❤️感谢大家点赞&#x1f44d;收藏⭐评论✍️ 目录 一、日期类的实现 &#x1f4d2;1.1日期类功能 &#x1f4d2;1.2拷贝日期 &#…

PTA——L2-041 插松枝(25分、模拟题)

文章目录 一、题目二、题解1.基本思路&#xff1a; 一、题目 人造松枝加工场的工人需要将各种尺寸的塑料松针插到松枝干上&#xff0c;做成大大小小的松枝。他们的工作流程&#xff08;并不&#xff09;是这样的&#xff1a; 每人手边有一只小盒子&#xff0c;初始状态为空。…

二进制介绍

十进制转相应进制 (十进制)231 转 八进制 除八取余法 从下而上取余 231/828 ....7 28/83.......4 3/80........3 (十进制)231(八进制)0o347 (十进制)231 转 16进制 除十六取余法 从下而上取余 231/1614......7 14/160..........14 (十进制) 231(十六进制)0xe7 (十进制)231.3 转…

【MySQL】创建数据库和表

文章目录 1. 创建和删除数据库1.1 create database1.2 drop database 2. 创建表&#xff1a;create table2.1 列属性 3. 更改表&#xff1a;alter table4. 创建关系5. 更改主键和外键约束6. 字符集和排序规则6.1 字符集6.2 排序规则6.2 更改库、表或特定列的字符集 7.存储引擎7…

2.8 EXERCISES

如果我们想使用每个线程来计算向量加法的一个输出元素&#xff0c;那么将线程/块索引映射到数据索引的表达式是什么&#xff1f; 答&#xff1a;C 假设我们想用每个线程来计算向量加法的两个&#xff08;相邻&#xff09;元素。将线程/块索引映射到i&#xff08;由线程处理的…

深入理解并解析Flutter Widget

文章目录 完整代码程序入口构建 Widget 结构定义 widget 状态定义 widget UI获取上下文关于build()build() 常用使用 完整代码 import package:english_words/english_words.dart; import package:flutter/material.dart; import package:provider/provider.dart;void main() …

红队打靶练习:EVM: 1

目录 信息收集 1、arp 2、netdiscover 3、nmap 4、nikto 5、whatweb 目录探测 1、gobuster 2、dirsearch WEB wpscan get username get password MSF get shell 提权 get root get flag 信息收集 1、arp ┌──(root㉿ru)-[~/kali] └─# arp-scan -l Interf…

Flink中的状态管理

一.Flink中的状态 1.1 概述 在Flink中&#xff0c;算子任务可以分为有状态和无状态两种状态。 无状态的算子任务只需要观察每个独立事件&#xff0c;根据当前输入的数据直接转换输出结果。例如Map、Filter、FlatMap都是属于无状态算子。 而有状态的算子任务&#xff0c;就…

西电期末1027.判断同构数

一.题目 二.分析与思路 不用把他转成字符串再转成数字之类的&#xff0c;用数学解决就好&#xff01;找出一个数的最后位就是将其对求余啊&#xff0c;找一个数有几位以前也有过啊&#xff0c;那不就过了嘛&#xff01; 三.代码实现 #include<bits/stdc.h>//万能头 in…

探索2024年软件测试的几大主导趋势

进入2024年&#xff0c;考虑影响测试环境的问题至关重要。这种思考将成为团队了解主要瓶颈和实现当今不断提高的期望的首要因素。 01 了解关键测试瓶颈 毋庸置疑&#xff0c;现代团队需要不断创新、适应和拥抱最新趋势&#xff0c;以保持竞争力并提供以客户为中心的解决方案。尽…

YOLO蒸馏原理篇之---MGD、CWD蒸馏

一、MGD蒸馏 论文地址:https://arxiv.org/abs/2205.01529 论文翻译:https://mp.weixin.qq.com/s/FSvo3ns2maTpiTTWsE91kQ 1.1 摘要 知识蒸馏已成功应用于各种任务。当前的蒸馏算法通常通过模仿教师的输出来提高学生的表现。本文表明,教师还可以通过指导学生的特征恢复来提…