Bat批处理中的 FINDSTR用法

news2025/1/17 14:11:00

linux中的grep等同于win中的findstr命令。可以在txt文本中截取到有特定关键字的行,并显示出来。

 grep也可以通过关键字,在一个文件夹下查找多个有这些关键字的文件,并生成结果。

 

一、findstr命令介绍

findstr是Windows系统自带的命令,简单来说,就是根据一定的格式来查找文件中指定的行,并打印相关信息。

findstr 算是find的扩展,功能更强大,关键是还支持正则表达式。

查看下findstr命令的帮助信息

语法格式

简单格式:findstr [可选参数] 要查找的字符串 [路径\文件名]

详细格式:findstr [/B] [/E] [/L] [/R] [/S] [/I] [/X] [/V] [/N] [/M] [/O] [/F:file] [/C:string] [/G: file] [/D:dirlist] [/A:colorattributes] [strings] [ [drive:] [path] filename [ ... ] ]

注意点:

1.默认是查找当前目录,至少指定一个文件,当然可以同时指定多个,用空格分隔。

2.文件名可以使用通配符,例如所有文本文件,就可以写成 *.txt 。

3.详细参数列表

参数        参数说明

/B        在一行的开始配对模式。

/E        在一行的结尾配对模式。

/L        按字使用搜索字符串。

/R        将搜索字符串作为一般表达式使用。

/S        在当前目录和所有子目录中搜索匹配文件。递归查找

/I        指定搜索不分大小写。忽略大小写

/X        打印完全匹配的行。输出和搜索文本完全匹配的行

/V        只打印不包含匹配的行。匹配结果反选,只输出不包含搜索文本的行。

/N        在匹配的每行前打印行数。行号从1开始计数,即:第一行的行号是1

/M        如果文件含有匹配项,只打印其文件名。

/O        在每个匹配行前打印字符偏移量。即匹配内容的首字符在filename整个文件中出现的的字符偏移量,字符偏移量从0开始计数。

/P        忽略有不可打印字符的文件。

/OFF[LINE]        不跳过带有脱机属性集的文件。

/A:attr        指定有十六进位数字的颜色属性。请见 “color /?”

/F:file        从指定文件读文件列表 (/ 代表控制台)。

/C:string        使用指定字符串作为文字搜索字符串。查找包含空格的字符串所在行

/G:file        从指定的文件获得搜索字符串。 (/ 代表控制台)。

/D:dir        查找以分号为分隔符的目录列表

strings        要查找的文字。

[drive:][path]filename        指定要查找的文件。

 

二、例子

使用两个测试文件:

Test1.txt:

hello world

hello world boy

hello world girl

the world is over

Test2.txt:

hello world

hello world boy

hello world girl

the world is broken

1. 指定一个字符串和一个文件,打印找到的行(基本使用、单字符串搜索)

findstr "hello" D:\Test1.txt

得到的结果:

hello world

hello world boy

hello world girl

跟find命令差不多。表示在D盘下的test.txt文件中查找含有 hello这一字符串的所有行。

2、指定多个字符串和一个文件,打印找到的行(多字符串搜索)

findstr "hello world" D:\Test1.txt

得到的结果:

hello world

hello world boy

hello world girl

the world is over

表示查找含有字母 hello 或 world 的行。

这里需要注意,多个字符串通过空格区分,且都需要在""之内,如果这里没有"",第二个字符串(就是这里的world)会被当成文件名。

还有一点值得关注,即同一行只会打印一次,即使包含多个字符串。

3、指定多个字符串和多个文件,打印找到的行

findstr "hello world" D:\Test1.txt D:\Test2.txt

得到的结果:

Test1.txt:hello world

Test1.txt:hello world boy

Test1.txt:hello world girl

Test1.txt:the world is overTest2.txt:hello world

Test2.txt:hello world boy

Test2.txt:hello world girl

Test2.txt:the world is broken

所有包含hello和world的语句都被打印出来了,且在每一行的开头打印都会指定对应的文件。

4、将"hello world"作为一个整体来查找(查找带有空格的字符串)

findstr /C:"hello world" D:\Test1.txt

得到的结果:

hello world

hello world boy

hello world girl

与2相比,此处不再打印单独匹配world的行。

/C用于指定某个字符串,空格不再作为字符串的分隔符,而是作为字符串本身的一部分。如果不用参数/c:findstr "hello world" D:\Test1.txt 就会输出含有字母 hello 或 world 的行

5、只打印文件中完全匹配字符串的行

findstr /C:"hello world" /X D:\Test1.txt

得到的结果:

hello world

/X用来指定全字符串匹配的行,所以后面接了boy/girl的行都不算。

6、只打印不匹配的行

findstr /C:"hello world" /X /V D:\Test1.txt

得到的结果:

hello world boy

hello world girl

the world is over

/V之后不再打印匹配的行,而是相反。

7、findstr中的字符串支持正则表达式,可以使用/R来指定,此时字符串编程正则表达式。

findstr /R "world$" D:\Test1.txt

得到的结果:

hello world

这里的/R指定了正则表达式,而该表达式里面的$表示文件结尾,所以之类的意思就是找到文件结尾是world的字符串。

8、在当前目录及所有子目录下的所有文件中查找

findstr /s /i "hello"  *.*

在当前目录及所有子目录下(/s)的所有文件中查找"hello"这个字符串,*.* 表示所有类型的文件,同时不区分字符串的大小写(/i)。

9、正则表达式的使用

匹配纯字母的行,写法如下:

findstr /R "^[a-z]*$" D:\Test1.txt

匹配hello开头的行,写法如下:

findstr /R "^hello" D:\Test1.txt

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

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

相关文章

chatgpt赋能Python-python_end的用法

简介 Python是一种广泛使用的编程语言,被广泛应用于数据科学,机器学习,网络编程,Web开发等领域。Python内置了许多有用的操作符和关键字,其中包括end。end是Python中一个非常有用的操作符,它可以在将多个输…

C001--Visual C++ 6.0集成开发环境的下载与安装并运行简单的C语言程序

visual c的下载安装过程不复杂,只需要运行setup.exe程序,然后按照安装程序的提示信息进行操作,也可以指定系统文件存放的路径。 目录 一,下载安装集成开发环境 1,流程 2,熟悉visual c工作界面 二&am…

Element-UI介绍:主题定制、自定义组件和插件扩展

部分数据来源:ChatGPT 什么是Element-UI Element-UI是一款简单好用的前端UI库,基于Vue.js开发。它提供了常用的组件和样式,可以帮助我们快速地构建美观、实用的交互界面。 在使用Element-UI开发项目过程中,我们有时遇到了一些特…

chatgpt赋能Python-python_dim

Python dim:将维度降至极致 在机器学习和数据分析领域,我们经常需要处理高维数据。然而,高维数据不仅处理起来麻烦,而且往往也不利于数据分析和模型训练。因此,数据科学家和工程师需要一个有效的方法来降低数据维度。…

【数据结构与算法】- 期末考试

课程链接: 清华大学驭风计划 代码仓库:Victor94-king/MachineLearning: MachineLearning basic introduction (github.com) 驭风计划是由清华大学老师教授的,其分为四门课,包括: 机器学习(张敏教授) , 深度学习(胡晓林教授), 计算…

python笔记 第一章

学习用到的资源链接:https://pan.baidu.com/s/1Ftptx_9iH9xFYj3NbugMrg?pwd1234 提取码:1234 文章目录 1.1 简介Python版本 1.2 解释器下载Python解释器安装Python解释器验证是否安装 扩展 1.3 PyCharm安装PyCharm基本使用新建项目设置只看项目文件运行…

【深度学习】- 作业6: 图像自然语言描述生成

课程链接: 清华大学驭风计划 代码仓库:Victor94-king/MachineLearning: MachineLearning basic introduction (github.com) 驭风计划是由清华大学老师教授的,其分为四门课,包括: 机器学习(张敏教授) , 深度学习(胡晓林教授), 计算…

2023 华为 Datacom-HCIE 题库 04--含解析

单选题 1.[试题编号:189921] (单选题)防火墙双机热备场景下,当VGMP工作在负载分担模式时,为了避免在来回路径不一致的场景下回程流量因没有匹配到会话表项而丢弃的现象,防火墙需要启开一下那些功能&#x…

【vim】从入门到放弃(“四种”模式、常用命令、正则表达式、文件属性、插件安装)

文章目录 一、vim简介二、vim操作2.1 三种模式及其切换2.2 常用命令2.21 命令模式下常用命令2.22 底行模式下常用命令 三、vim进阶3.1 进阶操作3.11 可视化模式3.12 正则表达式3.13 结合其他文本处理命令3.14 修改文件属性(编码、格式、权限) 3.2 进阶配…

cpu压力测试、平均负载、切换上下文(linux)

和windows下有很多图形化测试工具不同,linux下的压力测试通常需要命令行 一、平均负载 1.查看命令 uptime会给出类似如下的信息 2.说明 三个数值代表1分钟,5分钟,15分钟的平均进程数。 换成更容易理解但不准确的说法就是几个核满载 比如…

目前前端流行的框架总结

框架 前端框架 前端框架一般指用于简化网页设计的框架,使用广泛的前端开发套件,比如,jquery,extjs,bootstrap等等,这些框架封装了一些功能,比如html文档操作,漂亮的各种控件&#x…

取余,取模

目录 一:取整方式 1:向0取整 --- trunc取整函数 2.向-∞取整 --- floor(地板)函数 3.向∞取整 --- ceil函数 4.四舍五入取整 --- round 函数 5.四种取整方式的对比 二:取模 1.引入 2.取模与取余等价? 一&a…

JavaScript实现通过表格方式显示三角形的代码

以下为实现通过表格方式显示三角形的程序代码和运行截图 目录 前言 一、通过表格方式显示三角形 1.1 运行流程及思想 1.2 代码段 1.3 JavaScript语句代码 1.4 运行截图 前言 1.若有选择,您可以在目录里进行快速查找; 2.本博文代码可以根据题目要…

5.python列表

文章目录 一、什么是列表二、列表的表示方法三 、列表元素的索引四、访问列表元素五、修改列表元素直接赋值 六、添加列表元素6.1 方法append()6.2 方法insert() 七、删除列表元素7.1 语句del7.2方法pop()7.3方法remove() 八、组织列表8.1倒着打印列表8.2确定列表长度8.3 列表排…

【机器学习】 - 作业5: 基于Kmeans算法的AAAI会议论文聚类分析

课程链接: 清华大学驭风计划 代码仓库:Victor94-king/MachineLearning: MachineLearning basic introduction (github.com) 驭风计划是由清华大学老师教授的,其分为四门课,包括: 机器学习(张敏教授) , 深度学习(胡晓林教授), 计算…

HC-05蓝牙模块的使用

我最近刚刚开始学习嵌入式,在第一次使用蓝牙模块HC-05的时候遇到了很多问题, 甚至连接线都不会,因此下面我会十分详细地介绍我一步一步探索的步骤,直到完成使用手机APP和51单片机收发数据。 调试步骤 首先,我们需要明…

2023开放原子全球开源峰会分论坛即将来袭,Pick你最关注的峰会话题!

2023开放原子全球开源峰会即将开启 二十余场分论坛主题重磅首发 聚焦全球开源发展最新动向 前沿技术、行业实践、开源项目与治理等 多场知识盛宴等您来享 为更好地了解大家的参与意向 分论坛投票今天正式启动! 投票时间:5月19-26日 长按识别二维码 …

MFC 给对话框添加图片背景

在windows开发当中做界面的主要技术之一就是使用MFC,通常我们看到的QQ,360,暴风影音这些漂亮的界面都可以用MFC来实现。今天我们来说一下如何用MFC美化对话框,默认情况下,对话框的背景如下: 那么,我们如何将它的背景变…

【Servlet 基础】

🎉🎉🎉点进来你就是我的人了博主主页:🙈🙈🙈戳一戳,欢迎大佬指点! 欢迎志同道合的朋友一起加油喔🤺🤺🤺 目录 1. 什么是Servlet? 2. 第一个Serv…

微软 LoRA| 使用万分之一的参数微调你的GPT3模型

一、概述 title:LORA: LOW-RANK ADAPTATION OF LARGE LAN- GUAGE MODELS 论文地址:https://arxiv.org/abs/2106.09685 代码:GitHub - microsoft/LoRA: Code for loralib, an implementation of "LoRA: Low-Rank Adaptation of Large …