精华内容
下载资源
问答
  • findstr
    2021-05-25 05:48:44

    find 作用:从文件中收索字符串

    格式:find 参数 "字符串" 路径\文件名

    参数: /V 显示所有未包含指定字符串的行。

    /C 仅显示包含字符串的行数。

    /N 显示行号。

    /I 搜索字符串时忽略大小写。

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

    当文件中包含要查找的字符串时,将返回这个字符串所在位置的整行内容。默认情况下是区分大小写的,若想要

    不区分大小写就是用参数 /i 有时候,我们的需求并不是为了查找到某个字符串,而是要检测哪些行不含有特定的

    字符串,这个时候,可以使用开关/v,用法为:find /v "Abc" test.txt,它表示查找那些不含字符串Abc的行(Abc要

    区分大小写),如果不区分abc的大小写,那么,应该写成 find /i /v "Abc" test.txt。还有一点是find 支持查找通配

    符文件。如 find "1" *.txt。

    findstr 是find的扩展,功能更强大

    格式:findstr 参数 字符串 路径\文件名

    参数: /B 在一行的开始配对模式。 (就是指以字符串开头,begin 这样就方便了记忆)

    /E 在一行的结尾配对模式。(就是指以字符串结尾,end 这样就方便记忆)

    /L 按字使用搜索字符串。就是将后面的""里的当成一个字符

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

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

    /I 指定搜索不分大小写。(英文:ignore 忽略)

    /X 打印完全匹配的行。/x 是指完全匹配,就是说整行匹配,而不是含有关键字.

    /V 只打印不包含匹配的行。(就是找出不包含字符串的)

    /N 在匹配的每行前打印行数。(就是在输出行的前面加上原文件中的行数,英文:number)

    显示的结果中冒号(:)是英文格式下的,在用for提取的时候需要注意!

    /M 如果文件含有匹配项,只打印其文件名。(指定文件中输出含有字符串的文件名)

    /O 在每个匹配行前打印字符偏移量。o开关的作用是告诉你每行第一个字符前的位置是该文件中的第几个字节

    计算时别忘了文本中不可见的回车符合换行符将占两字节(某些文本中只占一字节)。还有空格键一个字符。

    肯定听不懂。看例子:1.txt文件内容: 就三行三个c没有空格。输入:findstr /o c 1.txt 结果是:

    c 0:c

    c 3:c

    c 6:c

    怎么计算:第一行的c前没有字符所以是0.第二行的c前一行只有一个c算一个字符由于是第二行所以算一个回车

    2个字符就是:1+2=3同理第三个c前有2个字符和2个回车:1*2+2*2=6.。

    /P 忽略有不可打印字符的文件。(我不清楚,个人无法解释)

    /C:string 使用指定字符串作为文字搜索字符串。

    如:findstr /c:"a b" 1.txt 就会找出含"a b"的行并输出来(注意a和b中间有空格)

    如果不用参数/c:findstr "a b" 1.txt 就会输出含有字母 a 或 b 的行。

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

    如:findstr /g:2.txt 1.txt 就是把1.txt中含有2.txt中任一行内容的行输出来。

    上面的有点像:@echo off

    for /f "delims=" %%a in ('type 2.txt') do (

    findstr "%%a" 1.txt

    echo.)

    pause

    (以上是自己试出来的,不保证正确)

    /A:attr 指定有十六进位数字的颜色属性。请见 "color /?"(使用这个可以在dos上面搞出不同颜色的字,自己想想)

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

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

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

    除非参数有 /C 前缀,请使用空格隔开搜索字符串。

    例如: FINDSTR "hello there" x.y 在文件 x.y 中寻找 "hello"或"there" 。 FINDSTR /C:"hello there" x.y 文

    件 x.y 寻找"hello there"。

    一般表达式的快速参考:

    . 通配符: 任何字符

    * 重复: 以前字符或类别出现零或零以上次数

    ^ 行位置: 行的开始

    $ 行位置: 行的终点

    [class] 字符类别: 任何在字符集中的字符

    [^class] 补字符类别: 任何不在字符集中的字符

    [x-y] 范围: 在指定范围内的任何字符

    \x Escape: 元字符 x 的文字用法

    \

    xyz\> 字位置: 字的结束

    是单词锚定 ^是行首 $是行尾

    注意的是:别把^,$和\弄混了一个是行一个是字。行开始与结束没什么好说的。而字的开始和结束就不一样了,例如:

    1.txt里两行为"abcd" 和 "abcd e"用命令findstr "cd\>" 1.txt 两行都会出现,只要是连在一起(没被空格开)的

    并以cd结尾的(不 要求是行尾)都满足。相当于文本中出现英语中以cd结尾的的单词了的行都会输出来。

    举一些例子(来自网络):

    1.findstr . 2.txt 或 findstr "." 2.txt 2.findstr .* 2.txt 或 findstr ".*" 2.txt

    从文件2.txt中查找任意字符,不包括空字符或空行 从文件2.txt中查找任意字符包括空行和空字符

    ==================== ====================

    3.findstr "[0-9]" 2.txt 4.findstr "[a-zA-Z]" 2.txt

    从文件2.txt中查找包括数字0-9的字符串或行 从文件2.txt中查找包括任意字符的字符串或行

    ==================== ====================

    5.findstr "[abcezy]" 2.txt 6.findstr "[a-fl-z]" 2.txt

    从文件2.txt中查找包括a b c e z y字母的字符串或行 从文件2.txt中查找小写字符a-f l-z的字符串,但不包含g h I j k这几个字母。

    ==================== ====================

    7.findstr "M[abc][hig]Y" 2.txt 8. ^和$符号的应用

    从文件2.txt中可以匹配 MahY , MbiY, MahY等….. ^ 表示行首,"^step"仅匹配 "step hello world"中的第一个单词

    $ 表示行尾,"step$"仅匹配 "hello world step"中最后一个单词

    ==================== ====================

    9.finstr "[^0-9]" 2.txt

    如果是纯数字的字符串或者行便过滤掉,例如2323423423 这样的字符串,如果是345hh888这样的形式就不成了。

    ====================

    10.findstr "[^a-z]" 2.txt

    同上,如果是纯字母的字符串或者行便过滤掉,例如 sdlfjlkjlksjdklfjlskdf这样的字符,如果是sdfksjdkf99999这样的形式,掺杂着数字就不成了

    ====================

    11.*号的作用

    前面已经说过了 ".*"表示搜索的条件是任意字符,*号在正则表达式中的作用不是任何字符,而是表示左侧字符或者表达式的重复次数,*号表示重复的次数为零次或者多次。

    ====================

    12.findstr "^[0-9]*$" 2.txt

    这个是匹配找到的纯数字,例如 234234234234,如果是2133234kkjl234就被过滤掉了。

    Findstr "^[a-z]*$" 2.txt

    这个是匹配找到的纯字母,例如 sdfsdfsdfsdf,如果是213sldjfkljsdlk就被过滤掉了

    如 果在搜索条件里没有*号,也就是说不重复左侧的搜索条件,也就是[0-9] [a-z]那只能匹配字符串的第一个字符也只有这一个字符,因为有行首和行尾的限制,"^[0-9]$"第一个字符如果是数字就匹配,如果不是就过滤掉, 如果字符串是 9 就匹配,如果是98或者9j之类的就不可以了。

    =====================

    13. "\"这个表达式的作用

    这个表示精确查找一个字符串,\表示字的结束位置

    echo hello world computer|findstr "\"这样的形式

    echo hello worldcomputer|findstr "\" 这样的形式就不成了,他要找的是 "computer"这个字符串,所以不可以。

    echo hello worldcomputer|findstr ".*computer\>"这样就可以匹配了

    14.吧1.txt文档中超过10个字符的行输出到2.txt

    @findstr .......... 1.txt>2.txt

    感觉好像2.txt里是少于10个字符的行,可是实际却是超过10个字符的行,包括10个字符。

    find比findstr更强的地方:

    1、统计含指定字符串的总行数。find /c "abc" test.txt可以统计test.txt中含有字符串abc的总行数,而findstr则没有直接提供该功能,需要配合for语句才能实现;

    2、find可以读取Unicode格式的文本,而findstr则不行;

    3、find可以过滤某些特殊字符,而findstr则不行,比如,我们在使用fsutil fsinfo drives语句查询磁盘分区的时候,如果想让盘符分行显示而不是显示在同一行上的时候(这在用for语句提取盘符的时候很有用),find可以大显身手,而findstr只能干瞪眼了,具体语句为: 代码: fsutil fsinfo drives|find /v ""

    更多相关内容
  • findstr2 $ findstr2.exe --helpUsage: findstr2.exe [-?] [-l] [-i] <regex> <file>Description: Finds strings matching a regular expression in a file=======================================================...
  • Findstr使用正则表达式搜索文件中的文本模式。
  • findstr中文版,可以在任意文件夹内查找包含特定字符的文件
  • The program find UNICODE string
  • FindStr_chn

    2016-10-25 23:46:45
    window上面的grep工具,完美解决了win7/8/10上面查找文本文件内容的问题
  • gvim findstr

    2018-01-18 15:38:03
    FINDSTR [/B] [/E] [/L] [/R] [/S] [/I] [/X] [/V] [/N] [/M] [/O] [/F:file][/C:string] [/G:file] [/D:dir list] [/A:color attributes] [/OFF[LINE]]strings [[drive:][path]filename[ ...]] 参数 /B 在一行的...
  • Findstr 使用正则表达式搜索文件中的文本模式。 语法 findstr [/b] [/e] [/l] [/r] [/s] [/i] [/x] [/v] [/n] [/m] [/o] [/p] [/offline] [/g:File] [/f:File] [/c:String] [/d:DirList] [/a:ColorAttribute] ...

    一、引言

    Findstr
    使用正则表达式搜索文件中的文本模式。
    语法
    findstr [/b] [/e] [/l] [/r] [/s] [/i] [/x] [/v] [/n] [/m] [/o] [/p] [/offline] [/g:File] [/f:File] [/c:String] [/d:DirList] [/a:ColorAttribute] [Strings] [[Drive:][Path] FileName [...]]
    参数
    /b 
    如果位于行的开头则匹配模式。
    /e 
    如果位于行的末尾则匹配模式。
    /l 
    逐字地搜索字符串。
    /r 
    使用搜索串作为正则表达式。Findstr 将所有元字符解释为正则表达式,除非使用了 /l。
    /s 
    在当前目录和所有子目录中搜索匹配的文件。
    /i 
    指定搜索不区分大小写。
    /x 
    打印完全匹配的行。
    /v 
    仅打印不包含匹配的行。
    /n 
    在每个匹配的行之前打印行号。
    /m 
    如果文件包含匹配项,则仅打印该文件名。
    /o 
    在每个匹配行之前打印查找偏移量。
    /p 
    跳过包含非可打印字符的文件。
    /offline 
    利用脱机属性设置处理文件。
    /f:File 
    从指定文件中读取文件列表。
    /c:String 
    使用指定的文本作为文字搜索字符串。
    /g:File 
    从指定文件得到搜索字符串。
    /d:DirList 
    搜索以逗号分隔的目录列表。
    /a:ColorAttribute 
    使用两个十六进制数指定颜色属性。
    Strings 
    指定要在 FileName 中搜索的文本。
    [ Drive:][Path] FileName [...] 
    指定要搜索的文件。
    /? 
    在命令提示符下显示帮助。
    注释
    ? 使用 Strings 和 [Drive:][Path] FileName [...]
    在命令字符串中,所有 findstr 命令行选项必须在 Strings 和 [Drive:][Path] FileName [...] 之前。
     
    ? 在 findstr 中使用正则表达式
    Findstr 可以在任何 ASCII 文件或文件中精确查找所要查找的文本。然而,有时要匹配的信息只有一部分或要查找更宽广的信息范围。在这种情况下,findstr 具有使用正则表达式搜索各种文本的强大功能。
    正则表达式是用于指定文本类型的符号,与精确的字符串相反。标记使用文字字符和元字符。每个在常规的表达式语法中没有特殊意义的字符都是文字字符,与出现的该字符匹配。例如,字母和数字是文字符号。元字符是在正则表达式语法中具有特殊意义(操作符或分隔符)的符号。
    下表列出 findstr 接受的元字符。
    字符 值 
     通配符:任何字符
    *
     重复:以前零次或多次出现的字符或数字 
    ^
     行中的位置:行首 
    $
     行中的位置:行尾
    [class]
     字符类:集中的任何一个字符 
    [^class]
     反向类:非集中的任何一个字符 
    [X-y]
     范围:指定范围内的任何字符
    X
     转义:元字符 X 的文字用途
    <xyz
     字的位置:字首
    xyz> 
     字的位置:字尾
    组合使用正则表达式语法的特殊字符功能十分强大。例如,下面的通配符 (.) 和重复符 (*) 的组合可以匹配任何字符串:
    .*
    将如下表达式用作匹配以“b”开头并以“ing”结尾的任意字符串的更大表达式的组成部分:
    b.*ing  
    示例

    参数详解: 
    学习findstr需要大量的实践体会,所以需要新建一些txt文本以供测试。 
    a.txt的内容(a.txt的内容在后面会多次修改,请注意!): 

    复制代码代码如下:

    Hello World 
    Hello Boy 
    hello ,good man. 
    goodbye! 

    1.最简单的应用:在指定文本中查找指定字符串 
    代码: 

    复制代码代码如下:

    findstr "hello" a.txt 

    结果: 

    复制代码代码如下:

    C:\Users\helloworld\Desktop>findstr "hello" a.txt 
    hello ,good man. 

    代码: 

    复制代码代码如下:

    findstr "Hello" a.txt 

    结果: 

    复制代码代码如下:

    C:\Users\helloworld\Desktop>findstr "Hello" a.txt 
    Hello World 
    Hello Boy 

    这里可以看出, 
    findstr默认是区分大小写的(跟find命令一样)——找hello就不会出现Hello,反之亦然。 
    怎么让其不区分大小写呢? 
    用/i参数! 
    例如: 

    复制代码代码如下:

    C:\Users\helloworld\Desktop>findstr /i "Hello" a.txt 
    Hello World 
    Hello Boy 
    hello ,good man. 

    2.显示要查找的字符具体在文本哪一行 
    代码:C:\Users\helloworld\Desktop>findstr /n /i "hello" a.txt 
    复制代码效果: 

    复制代码代码如下:

    1:Hello World 
    2:Hello Boy 
    3:hello ,good man. 

    显示的结果中冒号(:)是英文格式下的,在用for提取的时候需要注意! 
    这里可以对比一下find命令的/n参数: 
    代码: 

    复制代码代码如下:

    C:\Users\helloworld\Desktop>find /n "hello" a.txt 

    效果:---------- A.TXT 
    [3]hello ,good man. 
    复制代码冒号(:)和中括号([]),这就是差别,编写代码的时候一定要注意。 
    3.查找包含了指定字符的文本 
    代码: 

    复制代码代码如下:

    C:\Users\helloworld\Desktop>findstr /m /i "hello" *.txt 

    效果: 

    复制代码代码如下:

    1.txt 
    a.txt 

    1.txt中的类容如下:除非参数有 /C 前缀,请使用空格隔开搜索字符串。 
    例如: 

    复制代码代码如下:

    'FINDSTR "hello there" x.y' 在文件 x.y 中寻找 "hello" 或 
    "there"。'FINDSTR /C:"hello there" x.y' 文件 x.y 寻找 
    "hello there"。 
    [code] 
    由于加上了/m参数,所以只列出包含指定字符的文件名。 
    4.查找以指定字符开始或结尾的文本行 
    这个功能和前面介绍的最大不同就在于涉及到了“元字符”,如果你不明白什么是“元字符”,那也不用担心学不好这一节,这就好像不明白“water”是什么,也不会影响喝水。 
    a.txt内容: 
    [code] 
    good hello 
    你好 hello world 
    Hello World 
    Hello Boy 
    hello ,good man. 
    goodbye! 

    如何查找以hello(忽略大小写)开始的行? 
    两种方法: 
    ①./b参数 
    代码: 

    复制代码代码如下:

    C:\Users\helloworld\Desktop>findstr /b /i "hello" a.txt 

    效果: 

    复制代码代码如下:

    Hello World 
    Hello Boy 
    hello ,good man.

    good hello 和 你好 hello world,这两行都没有显示出来,因为hello不在行的开始处。 
    ②.^符 
    这里的^可不是转义符,而是正则表达式中的“匹配行开始的位置”。 
    代码: 

    复制代码代码如下:

    C:\Users\helloworld\Desktop>findstr /i "^hello" a.txt 

    效果: 

    复制代码代码如下:

    Hello World 
    Hello Boy 
    hello ,good man. 

    学完了以查找指定字符开始的行,下面学习查找以指定字符结尾的行。 
    如何查找以hello(忽略大小写)结尾的行? 
    同样有两种方法: 
    ①./e参数 
    代码: 

    复制代码代码如下:

    C:\Users\helloworld\Desktop>findstr /e /i "hello" a.txt 

    结果: 

    复制代码代码如下:

    good hello 

    只显示了“good hello”,因为其它行虽然有“hello”,但是他们都没有以“hello”结尾。 
    ②.$符 
    代码: 

    复制代码代码如下:

    C:\Users\helloworld\Desktop>findstr /i "hello$" a.txt 

    结果:good hello 
    到此,我们已经学习了两个正则表达式的元字符:^和$(分别和他们功能相对应的有/b、/e参数)。 
    5.查找与指定字符完全匹配的行 
    首先修改a.txt的内容: 

    复制代码代码如下:

    hello 
    hello hello 
    good hello 
    你好 hello world 
    Hello World 
    Hello Boy 
    hello ,good man. 
    goodbye! 

    懂得举一反三的的童鞋可能会试着尝试以下代码: 

    复制代码代码如下

    C:\Users\helloworld\Desktop>findstr /n /i "^hello$" a.txt 

    结果让你倍感欣喜:1:hello 
    其实除了这一种方法外,findstr命令还提供了/x参数用来查找完全匹配的行。 
    代码: 

    复制代码代码如下:

    C:\Users\helloworld\Desktop>findstr /n /i /x "hello" a.txt 

    结果: 

    复制代码代码如下:

    1:hello 

    6.关闭正则表达式会怎么样? 
    我们可以人为地将findstr分为两种模式,“正则表达式模式”和“普通字符串模式”。 
    findstr默认为“正则表达式模式”,加上/r参数也是“正则表达式模式”(换言之,/r参数有点多余)。 
    加上/l参数后,findstr转换为“普通字符串模式”(其实find就是这种模式、且只有这种模式)。 
    “普通字符串模式”下,以同样的代码,看看结果怎样? 
    代码: 

    复制代码代码如下:

    C:\Users\helloworld\Desktop>findstr /li "^hello" a.txt 

    结果什么都没显示出来。 
    以hello开头的行明明有以下这些,为什么没显示出来呢? 

    复制代码代码如下:

    hello hello 
    Hello World 
    Hello Boy 
    hello ,good man. 

    因为,当你使用“普通字符串模式”,findstr不会把^当做是正则表达式的元字符,而只是把其当做普通字符^,也就是说它此时已经不具备“表示行首”的功能,变成了和h之类字符一样的普通民众,再也没“特权”。 
    改变a.txt的内容:^hello 

    复制代码代码如下:

    hello 
    hello hello 
    good hello 
    你好 hello world 
    Hello World 
    Hello Boy 
    hello ,good man. 
    goodbye! 

    再次运行代码: 

    复制代码代码如下:

    C:\Users\helloworld\Desktop>findstr /nli "^hello" a.txt 

    结果: 

    复制代码代码如下:

    1:^hello 

    7.查找不包含指定字符的行 
    如果比较一下find和findstr命令就会发现,他们都具有/v,/n,/i,/off[line]参数,而且功能都是一摸一样的,这里说的就是/v参数。 
    查找不包含hello的行。 
    代码: 

    复制代码代码如下:

    C:\Users\helloworld\Desktop>findstr /vni "hello" a.txt 

    结果: 

    复制代码代码如下:

    9:goodbye! 

    8.如何查找当前目录及子目录下文件内容中包含某字符串的文件名? 
    在写这篇教程的时候,偶然看到有批友问了这个问题,问题地址:http://bbs.bathome.net/viewthread.php?tid=14727 
    代码: 

    复制代码代码如下:

    findstr /ms "专业" *.txt 

    效果: 
    找出当前目录及子目录下文件内容中包含“专业”的文本文件,并只显示其文件名。 
    9.用文本制定要查找的文件 And 用文本制定要查找的字符串 
    用文本制定要查找的文件 
    新建一个file.txt,内容如下(这个文本中指定findstr要查找的文本的路径): 

    复制代码代码如下:


    C:\Users\helloworld\Desktop\1.txt 
    C:\Users\helloworld\Desktop\a.txt 
    C:\Users\helloworld\Desktop\clip.txt 
    C:\Users\helloworld\Desktop\CrLf 批处理笔记.txt 
    C:\Users\helloworld\Desktop\file.txt 
    C:\Users\helloworld\Desktop\MyRarHelp.txt 
    C:\Users\helloworld\Desktop\test.txt 
    C:\Users\helloworld\Desktop\红楼.txt 
    C:\Users\helloworld\Desktop\520\新建文本文档.txt 
    C:\Users\helloworld\Desktop\520\12\hello_ world.txt 
    C:\Users\helloworld\Desktop\编程\help.txt 
    C:\Users\helloworld\Desktop\编程\win7 help比xp help多出来的命令.txt 
    C:\Users\helloworld\Desktop\编程\wmic.txt 


    代码: 

    复制代码代码如下:


    C:\Users\helloworld\Desktop>findstr /f:file.txt /im "hello" 


    效果: 

    复制代码代码如下:


    C:\Users\helloworld\Desktop\1.txt 
    C:\Users\helloworld\Desktop\a.txt 
    C:\Users\helloworld\Desktop\CrLf 批处理笔记.txt 
    C:\Users\helloworld\Desktop\file.txt 
    C:\Users\helloworld\Desktop\test.txt 


    用文本制定要查找的字符串 
    新建一个string.txt,内容如下(这个文本中指定findstr要查找的字符串): 

    复制代码代码如下:


    ^hello 
    world 


    a.txt 

    复制代码代码如下:


    ^hello 
    hello 
    hello hello 
    good hello 
    你好 hello 
    Hello World 
    Hello Boy 
    hello ,good man. 
    goodbye! 


    代码: 

    复制代码代码如下:


    C:\Users\helloworld\Desktop>findstr /ig:string.txt a.txt 


    效果: 

    复制代码代码如下:


    hello 
    hello hello 
    Hello World 
    Hello Boy 
    hello ,good man. 


    被忽略的行 

    复制代码代码如下:


    ^hello 
    good hello 
    你好 hello 
    goodbye! 


    从被忽略的“^hello”可以看出,在不加/l参数的前提下,用/g指定的搜索字符串中如果含有“元字符”,则作为正则表达式使用,而不是作为普通表达式。 
    10.搜索一个完全匹配的句子 
    其实findstr自带的帮助中就有个很好的例子: 
    例如: 'FINDSTR "hello there" x.y' 在文件 x.y 中寻找 "hello" 或 
    "there"。'FINDSTR /C:"hello there" x.y' 文件 x.y 寻找 
    "hello there"。 
    可以以这个例子来做个测试。 

    复制代码代码如下:


    a.txthello there 
    hellothere 
    hello 
    there 


    代码: 

    复制代码代码如下:


    C:\Users\helloworld\Desktop>findstr /ic:"hello there" a.txt 


    结果: 

    复制代码代码如下:


    hello there 


    这就是句子的完全匹配了。 
    11.搜索一个完全匹配的词。 
    这里也涉及到了两个元字符:\<,\>。 
    先试看一个例子。 
    a.txt 

    复制代码代码如下:


    far there 
    farthere 
    there 
    far 
    farm 
    farmer 


    代码: 

    复制代码代码如下:


    C:\Users\helloworld\Desktop>findstr "far" a.txt 


    结果: 

    复制代码代码如下:


    far there 
    farthere 
    far 
    farm 
    farmer 


    我的本意是要查找含有“far”这个单词的行,但是farthere、farm、farmer却显示出来了,这不是我想要的结果。 
    如果只要求显示含有“far”这个单词的行,该怎么写呢? 
    代码: 

    复制代码代码如下:


    C:\Users\helloworld\Desktop>findstr "\<far\>" a.txt 


    结果: 

    复制代码代码如下:


    far there 
    far 


    12.指定要查找的目录 
    /d参数我一直把它和/f、/g归为一类,但其实二者截然不同,/f、/g是用文本文件制定要查找的文件、字符串,而/d是直接书写目录名到命令中。 
    代码: 

    复制代码代码如下:


    C:\Users\helloworld\Desktop>findstr /imd:520;编程; ".*" "*.txt" 


    结果: 

    复制代码代码如下:


    520: 
    hello.txt 


    编程: 
    help.txt 

    复制代码代码如下:


    win7 help比xp help多出来的命令.txt 
    wmic.txt 


    查找在520、编程目录中所有包含任意字符的txt文件。 
    13.统计字符数 
    /o:在每行前打印字符偏移量,在找到的每行前打印该行首距离文件开头的位置,也就是多少个字符,如test.txt中有如下内容: 

    复制代码代码如下:


    aaaaaaaaaa 
    aaaaaaaaaa 
    aaaaaaaaaa 
    aaaaaaaaaa 
    aaaaaaaaaa 
    aaaaaaaaaa 


    执行命令:findstr /o .* test.txt 
    复制代码::上一行中的.*为正则表达式的内容,表示任意行,包含空行 
    结果如下: 

    复制代码代码如下:

    0:aaaaaaaaaa 
    12:aaaaaaaaaa 
    24:aaaaaaaaaa 
    36:aaaaaaaaaa 
    48:aaaaaaaaaa 

    注意每行末尾的回车换行符算两个字符。 
    14.以指定颜色显示文件名 
    /a:当被搜索文件名中含有通配符*或?时对搜索结果的文件名部分指定颜色属性,具体颜色值参见color帮助: 
    0 = 黑色 8 = 灰色 
    1 = 蓝色 9 = 淡蓝色 
    2 = 绿色 A = 淡绿色 
    3 = 浅绿色 B = 淡浅绿色 
    4 = 红色 C = 淡红色 
    5 = 紫色 D = 淡紫色 
    6 = 黄色 E = 淡黄色 
    7 = 白色 F = 亮白色 
    常用于彩色显示,举个简单的例子,想要彩色显示“批处理之家”怎么办,假如当前的color设置为27(背景绿色,字体白色),用蓝色显示“批处理之家”咋办?::下一行的退格符可以在cmd的编辑模式下按ctrl+p后按退格键获得>"批处理之家" set /p=<nul 

    复制代码代码如下:


    >"批处理之家" set /p=<nul 
    findstr /a:21 .* "批处理之家*" 
    pause 


    代码中的退格符是为了让显示的内容仅为"批处理之家",如果有其他内容,在彩色显示的"批处理之家"后还有一个冒号和其他内容,退格符正好将冒号删除。注意代码中的通配符是必须的。 

    二、应用案例

    (1)$GPGGA 语句包括17个字段:语句标识头,世界时间,纬度,纬度半球,经度,经度半球,定位质量指示,使用卫星数量,HDOP-水平精度因子,椭球高,高度单位,大地水准面高度异常差值,高度单位,差分GPS数据期限,差分参考基站标号,校验和结束标记(用回车符<CR>和换行符<LF>),分别用14个逗号进行分隔。

    格式示例:$GPGGA,014434.70,3817.13334637,N,12139.72994196,E,4,07,1.5,6.571,M,8.942,M,0.7,0016*79

    数据帧的结构及各字段释义如下:

    $GPGGA,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,M,<10>,M,<11>,<12>*xx<CR><LF>

    $GPGGA:起始引导符及语句格式说明(本句为GPS定位数据);

    <1> UTC时间,格式为hhmmss.sss;

    <2> 纬度,格式为ddmm.mmmm(第一位是零也将传送);

    <3> 纬度半球,N或S(北纬或南纬)

    <4> 经度,格式为dddmm.mmmm(第一位零也将传送);

    <5> 经度半球,E或W(东经或西经)

    <6> GPS状态, 0初始化, 1单点定位, 2码差分, 3无效PPS, 4固定解, 5浮点解, 6正在估算 7,人工输入固定值, 8模拟模式, 9WAAS差分

    <7> 使用卫星数量,从00到12(第一个零也将传送)

    <8> HDOP-水平精度因子,0.5到99.9,一般认为HDOP越小,质量越好。

    <9> 海拔高度,-9999.9到9999.9米

    M 指单位米

    <10> 大地水准面高度异常差值,-9999.9到9999.9米

    M 指单位米

    <11> 差分GPS数据期限(RTCM SC-104),最后设立RTCM传送的秒数量,如不是差分定位则为空

    <12> 差分参考基站标号,从0000到1023(首位0也将传送)。

    * 语句结束标志符

    xx 从$开始到*之间的所有ASCII码的异或校验

    <CR> 回车符,结束标记

    <LF> 换行符,结束标记

    $GNGGA 与GPGGA类似,见下图

    (2)实测数据分析

    原始数据片段

    ELL WGS-84 6378137.000 298.257223563
    PRO TME 111.000000 1.000000 0.000000 0.000000 0.000000 500000.0000 0.0000
    DTM 0.00 0.00 0.00 0.00000 0.00000 0.00000 0.00000
    GEO  "" 0.000
    HVU 1.0000000000 1.0000000000
    TND 12:29:40 08/09/2020 -480
    DEV 0 33269 "GPS NMEA-0183" 57348 C:\HYPACK 2018\devices\gps.dll 17.2.6.0
    OFF 0 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
    PRD 0 KTD "" "" ""
    DDT 0 SYN KTC 
    USR "FENERBAHCE" "NOT FOR COMMERCIAL USE" 0x1FF 1907
    EOH 374E52CD73F92DB2E60B4A94FE482003F68C5D29E7478A0D1496A3E400681FCDA7937359454FF5926C0162AD3554163AF250A1E5D95964704E38C793B142788EB7AC35BF335E20EB945A4BA46560B95F8FB276EAB0101A1A134B303180BE568479319B8D1B2E956DBB4C8F303F94D65B22AAD863A97FD52DE261A9C83308B4BF
    POS 0 44979.000 429782.591 3367458.117
    QUA 0 44979.000 7 5.000 0.800 16.000 4.000 0.000 0.000 0.000
    RAW 0 44979.000 4 302550.22194 1101614.78033 372.27600 42939.00000
    GYR 0 44979.530 210.160
    SYN 0 44979.525 6 44738920.099 44738920.099 256.000 0.000 0.000 0.000
    MSG 0 44979.517 $GNGGA,042939.00,3025.50221938,N,11016.14780327,E,4,16,0.8,395.028,M,-22.752,M,13.0,0002*42
    MSG 0 44979.525 $GNZDA,042939.06,09,08,2020,00,00*7A
    MSG 0 44979.528 $GNHDT,,*51
    MSG 0 44979.530 $GNVTG,210.16,T,213.69,M,0.02,N,0.03,K,D*32
    MSG 0 44979.708 UTC 20.08.09 04:29:40 69
    POS 0 44980.000 429782.589 3367458.114
    QUA 0 44980.000 7 5.000 0.800 16.000 4.000 0.000 0.000 0.000
    RAW 0 44980.000 4 302550.22177 1101614.78022 372.27500 42940.00000
    GYR 0 44980.525 319.310
    SYN 0 44980.520 6 44738920.099 44738920.099 256.000 0.000 0.000 0.000
    MSG 0 44980.513 $GNGGA,042940.00,3025.50221774,N,11016.14780215,E,4,16,0.8,395.027,M,-22.752,M,14.0,0002*42
    MSG 0 44980.520 $GNZDA,042940.05,09,08,2020,00,00*77
    MSG 0 44980.524 $GNHDT,,*51
    MSG 0 44980.525 $GNVTG,319.31,T,322.84,M,0.01,N,0.02,K,D*3D
    MSG 0 44980.707 UTC 20.08.09 04:29:41 69
    FIX 99 44980.750 3 429782.589 3367458.114
    POS 0 44981.000 429782.589 3367458.111
    QUA 0 44981.000 7 5.000 0.800 16.000 4.000 0.000 0.000 0.000
    RAW 0 44981.000 4 302550.22161 1101614.78019 372.27200 42941.00000
    MSG 0 44981.510 $GNGGA,042941.00,3025.50221613,N,11016.14780192,E,4,16,0.8,395.024,M,-22.752,M,15.0,0002*4D
    GYR 0 44981.523 217.260
    SYN 0 44981.518 6 44738920.099 44738920.099 256.000 0.000 0.000 0.000
    MSG 0 44981.518 $GNZDA,042941.05,09,08,2020,00,00*76
    MSG 0 44981.522 $GNHDT,,*51
    MSG 0 44981.523 $GNVTG,217.26,T,220.79,M,0.02,N,0.04,K,D*30
    MSG 0 44981.707 UTC 20.08.09 04:29:42 69

    实现功能:从上万条的记录数据中,提取只包含$GNGGA字符串的行

    //提取含GNGGA的行
    @echo off
    findstr /C:"$GNGGA" B.RAW>B1.RAW

    上述语句的意思是将B.RAW文件中含有GNGGA的行完全提取出来,生成一个新文件B1.RAW,并保存

    结语:希望在以后的日子里能够多思考,多动手,多实践,提高工作效率,解放自己。

    展开全文
  • 批处理 正则表达式(findstr) 整理语法findstr [/b] [/e] [/l] [/r] [/s] [/i] [/x] [/v] [/n] [/m] [/o] [/p] [/offline] [/g:File] [/f:File] [/c:String] [/d:DirList] [/a:ColorAttribute] [Strings] [[Drive:]...

    批处理 正则表达式(findstr) 整理

    语法

    findstr [/b] [/e] [/l] [/r] [/s] [/i] [/x] [/v] [/n] [/m] [/o] [/p] [/offline] [/g:File] [/f:File] [/c:String] [/d:DirList] [/a:ColorAttribute] [Strings] [[Drive:][Path] FileName [...]]

    参数

    /b

    如果位于行的开头则匹配模式。

    /e

    如果位于行的末尾则匹配模式。

    /l

    逐字地搜索字符串。

    /r

    使用搜索串作为正则表达式。Findstr 将所有元字符解释为正则表达式,除非使用了 /l。

    /s

    在当前目录和所有子目录中搜索匹配的文件。

    /i

    指定搜索不区分大小写。

    /x

    打印完全匹配的行。

    /v

    仅打印不包含匹配的行。

    /n

    在每个匹配的行之前打印行号。

    /m

    如果文件包含匹配项,则仅打印该文件名。

    /o

    在每个匹配行之前打印查找偏移量。

    /p

    跳过包含非可打印字符的文件。

    /offline

    利用脱机属性设置处理文件。

    /f:File

    从指定文件中读取文件列表。

    /c:String

    使用指定的文本作为文字搜索字符串。

    /g:File

    从指定文件得到搜索字符串。

    /d:DirList

    搜索以逗号分隔的目录列表。

    /a:ColorAttribute

    使用两个十六进制数指定颜色属性。

    Strings

    指定要在 FileName 中搜索的文本。

    [ Drive:][Path] FileName [...]

    指定要搜索的文件。

    /?

    在命令提示符下显示帮助。

    注释

    • 使用 Strings 和 [Drive:][Path] FileName [...]

    在命令字符串中,所有 findstr 命令行选项必须在 Strings 和 [Drive:][Path] FileName [...] 之前。

    • 在 findstr 中使用正则表达式

    Findstr 可以在任何 ASCII 文件或文件中精确查找所要查找的文本。然而,有时要匹配的信息只有一部分或要查找更宽广的信息范围。在这种情况下,findstr 具有使用正则表达式搜索各种文本的强大功能。

    正则表达式是用于指定文本类型的符号,与精确的字符串相反。标记使用文字字符和元字符。每个在常规的表达式语法中没有特殊意义的字符都是文字字符,与出现的该字符匹配。例如,字母和数字是文字符号。元字符是在正则表达式语法中具有特殊意义(操作符或分隔符)的符号。

    下表列出 findstr 接受的元字符。

    字符 值

    .

    通配符:任何字符

    *

    重复:以前零次或多次出现的字符或类

    ^

    行中的位置:行首

    $

    行中的位置:行尾

    [class]

    字符类:集中的任何一个字符

    [^class]

    反向类:非集中的任何一个字符

    [X-y]

    范围:指定范围内的任何字符

    \X

    转义:元字符 X 的文字用途

    \ 字的位置:字首

    xyz\>

    字的位置:字尾

    组合使用正则表达式语法的特殊字符功能十分强大。例如,下面的通配符 (.) 和重复符 (*) 的组合可以匹配任何字符串:

    .*

    将如下表达式用作匹配以“b”开头并以“ing”结尾的任意字符串的更大表达式的组成部分:

    b.*ing

    示例

    使用空格分隔多个搜索字符串,除非参数以 /c 为前缀。要在文件 x.y 中搜索“hello”或“there”,请键入:

    findstr "hello there" x.y

    要在文件 x.y 中搜索“hello there”,请键入:

    findstr /c:"hello there" x.y

    若要查找文件 Proposal.txt 中出现的所有单词“Windows”(首字母 W 大写),请键入:

    findstr Windows proposal.txt

    若要搜索包含单词 Windows 的当前目录和所有子目录中的每个文件(不考虑字母大小写),请键入:

    findstr /s /i Windows *.*

    要查找包含字“FOR”的所有行(前面可有任意空格,如:计算机程序中的循环),并包括每次出现的行号,请键入:

    findstr /b /n /c:"*FOR" *.bas

    如 果要在相同组文件中搜索几个不同项目,请在新行上创建包含每个搜索标准的文本文件。也可以列出要在文本文件中搜索的确切文件。要使用文件 Finddata.txt 中的搜索标准来搜索 Filelist.txt 中列出的文件,然后将结果保存到文件 Results.out 中,请键入:

    findstr /g:finddata.txt /f:filelist.txt > results.out

    假设您想要查找当前目录和所有子目录中包含单词“computer”的每个文件,而不考虑字母的大小写。若要列出包含单词“computer”的所有文件,请键入:

    findstr /s /i /m "\" *.*

    现在假定不仅需要查找单词“computer”,而且需要查找以字母“comp”开头的所有其他单词,例如“compliment”和“compete”。请键入:

    findstr /s /i /m "\

    http://www.microsoft.com/technet/prodtechnol/windowsserver2003/zh-chs/library/ServerHelp/2b01d7f5-ab5a-407f-b5ec-f46248289db9.mspx?mfr=true

    实例:

    1.findstr . 2.txt 或 findstr "." 2.txt

    从文件2.txt中查找任意字符,不包括空字符或空行

    ====================

    2.findstr .* 2.txt 或 findstr ".*" 2.txt

    从文件2.txt中查找任意字符包括空行和空字符

    ====================

    3.findstr "[0-9]" 2.txt

    从文件2.txt中查找包括数字0-9的字符串或行

    ====================

    4.findstr "[a-zA-Z]" 2.txt

    从文件2.txt中查找包括任意字符的字符串或行

    ====================

    5.findstr "[abcezy]" 2.txt

    从文件2.txt中查找包括a b c e z y字母的字符串或行

    ====================

    6.findstr "[a-fl-z]" 2.txt

    从文件2.txt中查找小写字符a-f l-z的字符串,但不包含g h I j k这几个字母。

    ====================

    7.findstr "M[abc][hig]Y" 2.txt

    从文件2.txt中可以匹配 MahY , MbiY, MahY等…..

    ====================

    8. ^和$符号的应用

    ^ 表示行首,"^step"仅匹配 "step hello world"中的第一个单词

    $ 表示行尾,"step$"仅匹配 "hello world step"中最后一个单词

    ====================

    9.finstr "[^0-9]" 2.txt

    如果是纯数字的字符串或者行便过滤掉,例如2323423423 这样的字符串,如果是345hh888这样的形式就不成了。

    ====================

    10.findstr "[^a-z]" 2.txt

    同上,如果是纯字母的字符串或者行便过滤掉,例如 sdlfjlkjlksjdklfjlskdf这样的字符,如果是sdfksjdkf99999这样的形式,掺杂着数字就不成了

    ====================

    11.*号的作用

    前面已经说过了 ".*"表示搜索的条件是任意字符,*号在正则表达式中的作用不是任何字符,而是表示左侧字符或者表达式的重复次数,*号表示重复的次数为零次或者多次。

    ====================

    12.findstr "^[0-9]*$" 2.txt

    这个是匹配找到的纯数字,例如 234234234234,如果是2133234kkjl234就被过滤掉了。

    Findstr "^[a-z]*$" 2.txt

    这个是匹配找到的纯字母,例如 sdfsdfsdfsdf,如果是213sldjfkljsdlk就被过滤掉了

    如 果在搜索条件里没有*号,也就是说不重复左侧的搜索条件,也就是[0-9] [a-z]那只能匹配字符串的第一个字符也只有这一个字符,因为有行首和行尾的限制,"^[0-9]$"第一个字符如果是数字就匹配,如果不是就过滤掉, 如果字符串是 9 就匹配,如果是98或者9j之类的就不可以了。

    =====================

    13. "\"这个表达式的作用

    这个表示精确查找一个字符串,\表示字的结束位置

    echo hello world computer|findstr "\"这样的形式

    echo hello worldcomputer|findstr "\" 这样的形式就不成了,他要找的是 "computer"这个字符串,所以不可以。

    echo hello worldcomputer|findstr ".*computer\>"这样就可以匹配了

    =====================相关阅读:

    asp.net 特定目录form验证

    php skymvc 一款轻量、简单的php

    iframe的onload在Chrome/Opera中执行两次Bug的解决方法

    Oracle数据导入导出imp/exp

    用vbs计算某个词在日志文件中的出现次数

    配置IIS服务器时需要注意的地方

    Access在调整工资上的应用

    给初学PHP的5个入手程序

    文件夹定时自动备份 AutoBackUpFolder.vbs

    为IE8提供即时听歌小工具

    Number对象常用的toFixed()方法

    别人整理的服务器变量:$_SERVER

    PHP中将字符串转化为整数(int) intval() printf() 性能测试

    让XP系统极速狂飙 屏蔽五项网络功能

    展开全文
  • windows 命令行下的find和findstr命令

    千次阅读 2021-05-20 09:46:42
    2.字符串查找增强:findstr 一.字符串查找:find 在文件中搜索字符串。 FIND [/V] [/C] [/N] [/I] [/OFF[LINE]] "string" [[drive:][path]filename[ ...]] /V 显示所有未包含指定字符串的行。 /C 仅显示包含字符...

    1.字符串查找:find
    2.字符串查找增强:findstr

    一.字符串查找:find

    在文件中搜索字符串。
    FIND [/V] [/C] [/N] [/I] [/OFF[LINE]] "string" [[drive:][path]filename[ ...]]

    /V 显示所有未包含指定字符串的行。
    /C 仅显示包含字符串的行数。
    /N 显示行号。
    /I 搜索字符串时忽略大小写。
    /OFF[LINE] 不要跳过具有脱机属性集的文件。
    "string" 指定要搜索的文字串,
    [drive:][path]filename 指定要搜索的文件。

    基本格式:find "要查找的字符串" 要查找的文件(不在当前目录则需要给出完整路径)

    例1
    find "abc" d:\abc.txt
    在abc.txt中查找字符串abc的行。

    /I 搜索字符串时忽略大小写。

    例2
    find /i "abc" d:\abc.txt
    参数/i代表的是“Ignore”(忽略),也就是忽略大小写。通过/I 参数可以不区分要查找的字符串“abc”的大小写。

    /N 显示行号。

    例3
    find /n "abc" d:\abc.txt
    参数/n代表英语单词“Number”(号码).。通过/n参数我们可以查找到字符串"abc"所在的行号。

    /C 仅显示包含字符串的行数。

    例4
    find /c "abc" d:\abc.txt
    参数/c是英语单词“Count”(计数)的缩写。通过/c参数我们可以统计包含"abc"字符串的行数。

    /V 显示所有未包含指定字符串的行。

    例5
    find /v "abc" d:\abc.txt
    这个参数用于找出文件中不包含指定字符串的行。在这里表示查找不包含"abc"字符串的行。

    注意:find命令中要查找的字符串一字要用双引号" "括起来。

    二.字符串查找增强:findstr

    在文件中寻找字符串。
    FINDSTR [/B] [/E] [/L] [/R] [/S] [/I] [/X] [/V] [/N] [/M] [/O] [/F:file]
    [/C:string] [/G:file] [/D:dir list] [/A:color attributes] [/OFF[LINE]]
    strings [[drive:][path]filename[ ...]]

    /B 在一行的开始配对模式。
    /E 在一行的结尾配对模式。
    /L 按字使用搜索字符串。
    /R 将搜索字符串作为一般表达式使用。
    /S 在当前目录和所有子目录中搜索
    匹配文件。
    /I 指定搜索不分大小写。
    /X 打印完全匹配的行。
    /V 只打印不包含匹配的行。
    /N 在匹配的每行前打印行数。
    /M 如果文件含有匹配项,只打印其文件名。
    /O 在每个匹配行前打印字符偏移量。
    /P 忽略有不可打印字符的文件。
    /OFF[LINE] 不跳过带有脱机属性集的文件。
    /A:attr 指定有十六进位数字的颜色属性。请见 "color /?"
    /F:file 从指定文件读文件列表 (/ 代表控制台)。
    /C:string 使用指定字符串作为文字搜索字符串。
    /G:file 从指定的文件获得搜索字符串。 (/ 代表控制台)。
    /D:dir 查找以分号为分隔符的目录列表
    strings 要查找的文字。
    [drive:][path]filename 指定要查找的文件。

    除非参数有 /C 前缀,请使用空格隔开搜索字符串。
    例如: 'FINDSTR "hello there" x.y' 在文件 x.y 中寻找 "hello" 或
    "there" 。 'FINDSTR /C:"hello there" x.y' 在文件 x.y 寻找 "hello there"。

    1.基本格式:findstr " strings " [drive:][path]filename

    Strings 是要查找的内容。
    [rive:][path]filename 指定要查找的文件,路径可缺省,缺省情况下为当前目录。

    例1
    findstr "icq" 123.txt
    在123.txt中查找包含有“icq”这三个字符串的行。

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

    例2
    findstr /i "MSN" 123.txt
    在123.txt中查找包含有“MSN”这三个字符的行,且不区分大小写。

    ★/R 将搜索字符串作为正则表达式使用。参数/R 强调以正则表达式规则来解读字符串。R - Right 右即为正。我们
    都说右手是正手,因此引申为右为正,左为反。

    例3
    findstr /r "icq msn" 123.txt
    在123.txt中查找包含有 “icq”或“msn”的行,查找的多个字符串间用空格隔格开。

    /S 在当前目录和所有子目录中搜索。

    例4
    findstr /s /i "MSN" *.txt
    在当前目录和所有子目录中的txt文件中搜索字符串"MSN"(不区分字母大小写)。

    /C:string 使用指定字符串作为文字搜索字符串。

    例5
    findstr /c:"icq msn" 123.txt
    在123.txt中查找包含有 “icq msn”这几个字符的行。注意,这里“icq msn”是一整体的。
    此参数多用于查找含有空格的字符串。

    ★在使用 findstr "我 你 他" test.txt 的时候,并不能查找到内容,但是,加上开关 /i 或者 /r 之后就正确无误
    了,可能是在查找多个纯中文字符串的时候的一个bug吧;单个的纯中文字符串没有任何问题。

    2.findstr 命令中正则表达式的用法规则

    一般表达式的快速参考:
    . 通配符: 任何字符

    • 重复: 以前字符或类别出现零或零以上次数
      ^ 行位置: 行的开始
      $ 行位置: 行的终点
      [class] 字符类别: 任何在字符集中的字符
      [^class] 补字符类别: 任何不在字符集中的字符
      [x-y] 范围: 在指定范围内的任何字符
      \x Escape: 元字符 x 的文字用法
      \<xyz 字位置: 字的开始
      xyz\> 字位置: 字的结束

    ● 通配符和重复符规则,即 . 和
    通配符,即一个句点,代表任何一个字符,而且只能是一个,包括字母、数字、半角符号还有空格。
    重复符,即型号
     代表前面字母的出现次数(出现次数从0到多次,0表示没有)。

    findstr . 123.txt 或 findstr "." 123.txt
    在文件123.txt中查找任意字符,不包括空行。

    例6
    findstr . 2.txt 或 findstr "." 2.txt
    在文件123.txt中查找任意字符,包括空行。

    例7
    findstr ac* 123.txt
    在文件123.txt中查找出现一个“a”字符串,以及a后面出现过0次或者任意次c的字符行。
    如:
    a
    ac
    acc
    addc
    等都匹配。

    例8
    findstr ak5* 123.txt
    在文件123.txt中查找出现一个“ak”字符串,以及ak后面出现过0次或者任意次5的字符行。如:
    ak
    ak5
    akbbb
    ak125
    ak555
    等都匹配。

    ●行首、行尾符规则,即 ^ 和 $

    例9
    findstr "^step" 123.txt
    在文件123.txt中查找行首为step字符串的行。
    如:
    stepkdka
    step 456
    这两行都匹配的。

    例10
    findstr "step$" 123.txt
    在文件123.txt中查找行尾为step字符串的行。
    如:
    123 dstep
    123step
    这两行也匹配的。

    例11
    findstr "^step$" 123.txt
    在文件123.txt中查找行首为step,且行尾也为step的行,即step独自一行。

    ● 字符集规则,即[class]
    ①表示含有集里的任意一个字符的即匹配。
    ②该字符集里的元素可以是字母和数字和一般的半角字符,如:}{ ,.][等,但双引号"不被识别。不能是汉字, 汉字
    不被正确解释(汉字不是ASCII码)。
    如果在字符集内插入通配符和重复符号,即"[.]"将会把. 和 视为普通字符,没有通配和重复的含义。

    例12
    findstr "[0-9]" 123.txt
    在文件123.txt中查找数字0-9的任意之一的行。
    如:
    4kkb
    1 lkka cc
    这两行都匹配。

    例13
    findstr "[a-zA-Z]" 123.txt
    在文件123.txt中查找包括任意字母行。

    例14
    findstr "[abcezy]" 2.txt
    在文件123.txt中查找包括a b c e z y其中任意一字母的行。

    例15
    findstr "[a-fl-z]" 2.txt
    在文件123.txt中查找小写字符a到f 或l到z的任意一字母的行,但不包含g h I j k这几个字母。

    例16
    findstr "M[abc][123]Y" 2.txt
    在文件123.txt中查找可以匹配 Ma1Y , Mb1Y, Mc1Y; Ma2Y , Mb2Y, Mc2Y; Ma3Y , Mb3Y, Mc3Y的行。

    ● 减法规则,即[^class]

    例17
    findstr "[^0-9]" 123.txt
    如果是纯数字的行便过滤掉,例如2323423423 这样的字符串被过滤,345hh888这样的形式则过滤不了。
    注意,纯数字的行不能有空格,不论行首行尾或者是行中都不能有空格,否则过滤失败!

    例18
    findstr "[^a-z]" 123.txt
    如果是纯字母的行便过滤掉,例如 sdlfjlkjlksjdklfjlskdf 这样的字符将被过滤,如果是sdfksjdkf99999这样的形
    式则过滤不了。
    注意,纯字母的行不能有空格,不论行首行尾或者是行中都不能有空格,否则过滤失败!

    例19
    findstr "[^add]" 123.txt
    过滤仅含有由a d d三个字母组成的纯字母字符串的行。
    如:
    a
    ad
    ddaadd
    dd
    这些行都会被过滤。
    注意,仅含有由a d d三个字母组成的纯字母字符串的行不能有空格,不论行首行尾或者是行中都不能有空格,否则
    过滤失败!

    例20
    findstr "[^echo]" 123.txt
    过滤仅含有由e c h o 四个字母组成的纯字母字符串的行。
    如:
    e
    c
    ec
    cho
    chooo
    这些行都会被过滤。

    ●单词前缀后缀定位规则,即\<xyz和xyz\>

    该xyz可以是英文单词或数字,但不适用于汉字。符号 \ 理解为转义符,化解小于号和大于号的重定向命令含义。
    该规则是匹配类似单个英文单词的。

    例21
    findstr "\<echo" 123.txt
    所有含有以echo为前缀的字符串的行,都匹配。
    如:
    echo:kkk a add
    jjkk echo
    这两行都匹配。
    (思考:为什么:echo也匹配?)

    例22
    findstr "echo\>" 123.txt
    所有含有以echo为后缀的字符串的行,都匹配。
    如:
    qq bbecho 这一行也匹配。
    (思考:为什么kkkk echo:也匹配?)

    例23
    findstr "\<end\>123.txt
    这里是用来精确查找单词。查找单词end的行,
    注意:
    ended
    cdkend
    bcd-end-jjkk
    这类词都不匹配。
    (思考:为什么end echo和end也匹配?因为\<xyz\>格式要查找的是单个英文单词。)

    ● 转义符 \
    把表达式中的特殊字符(元字符)转化为普通字符。常见写法:
    .
    *
    \
    ??
    -

    例24
    findstr ".abc" 123.txt
    在文件123.txt中查找可以匹配“.abc”字符串的行,这里\。是把。给转义了。

    例25
    findstr "1\" 123.txt 或findstr "1\\" 123.txt
    在文件123.txt中查找可以匹配“1\”字符串的行,这里\是把\给转义了。

    ★要查找的字符串含有\时,可以用\把\给转义;或者把\变成\\。如果目标字符串的\后面还有内容,则搜索字符
    串\除了要变成\(本身的转义要求),还可以在它后面再加一个字符,如\.

     

    >find /?
    在文件中搜索字符串。
    
    FIND [/V] [/C] [/N] [/I] [/OFF[LINE]] "string" [[drive:][path]filename[ ...]]
    
      /V         显示所有未包含指定字符串的行。
      /C         仅显示包含字符串的行数。
      /N         显示行号。
      /I         搜索字符串时忽略大小写。
      /OFF[LINE] 不要跳过具有脱机属性集的文件。
      "string" 指定要搜索的文本字符串。
      [drive:][path]filename
                 指定要搜索的文件。
    
    如果没有指定路径,FIND 将搜索在提示符处键入
    的文本或者由另一命令产生的文本。
    

     

    findstr /?
    在文件中寻找字符串。
    
    FINDSTR [/B] [/E] [/L] [/R] [/S] [/I] [/X] [/V] [/N] [/M] [/O] [/P] [/F:file]
            [/C:string] [/G:file] [/D:dir list] [/A:color attributes] [/OFF[LINE]]
            strings [[drive:][path]filename[ ...]]
    
      /B         在一行的开始配对模式。
      /E         在一行的结尾配对模式。
      /L         按字使用搜索字符串。
      /R         将搜索字符串作为一般表达式使用。
      /S         在当前目录和所有子目录中搜索匹配文件。
      /I         指定搜索不分大小写。
      /X         打印完全匹配的行。
      /V         只打印不包含匹配的行。
      /N         在匹配的每行前打印行数。
      /M         如果文件含有匹配项,只打印其文件名。
      /O         在每个匹配行前打印字符偏移量。
      /P         忽略有不可打印字符的文件。  
      /OFF[LINE] 不跳过带有脱机属性集的文件。
      /A:attr    指定有十六进位数字的颜色属性。请见 "color /?"
      /F:file    从指定文件读文件列表 (/ 代表控制台)。
      /C:string  使用指定字符串作为文字搜索字符串。
      /G:file    从指定的文件获得搜索字符串。 (/ 代表控制台)。
      /D:dir     查找以分号为分隔符的目录列表
      strings    要查找的文字。
      [drive:][path]filename
                 指定要查找的文件。
    
    除非参数有 /C 前缀,请使用空格隔开搜索字符串。
    例如: 'FINDSTR "hello there" x.y' 在文件 x.y 中寻找 "hello" 或
    "there"。'FINDSTR /C:"hello there" x.y' 文件 x.y  寻找
    "hello there"。
    
    一般表达式的快速参考:
      .        通配符: 任何字符
      *        重复: 以前字符或类出现零或零以上次数
      ^        行位置: 行的开始
      $        行位置: 行的终点
      [class]  字符类: 任何在字符集中的字符
      [^class] 补字符类: 任何不在字符集中的字符
      [x-y]    范围: 在指定范围内的任何字符
      \x       Escape: 元字符 x 的文字用法
      \<xyz    字位置: 字的开始
      xyz\>    字位置: 字的结束
    
    有关 FINDSTR 常见表达法的详细情况,请见联机命令参考。
    

     

     

    参考:https://blog.51cto.com/u_13718210/2359945

    展开全文
  • findstr 命令使用

    2019-09-26 10:22:09
    findstr 命令使用 find /? 在文件中搜索字符串。 FIND [/V] [/C] [/N] [/I] [/OFF[LINE]] "string" [[drive:][path]filename[ ...]] /V 显示所有未包含指定字符串的行。 /C 仅显示包含字符串的行数。...
  • CMD窗口之DOS命令篇(find 和 findstr)

    千次阅读 2021-07-27 14:51:08
    CMD窗口之DOS命令篇(find 和 findstr) 学习要点: 1.文件或字符串查找:find 2.文件或字符串增强查找:findstr 文件查找命令:dir | find ".txt"或dir | findstr “.txt”,意思查找该目录下所有txt文件; 一.文件或...
  • Windows命令之findstr命令

    千次阅读 2021-05-20 11:30:30
    findstr是window系统自带的命令,用途是查找指定的一个或多个文件文件中包含某些特定字符串的行,并将该行完整的信息打印出来,或者打印查询字符串所在的文件名。通过管道符与其他命令结合使用,其用途和用法都类似...
  • matlab中这两个字符串查找的函数findstr(), strfind()表明上看起来用法相似,效果也相似。1. findstr(s1,s2)--在较长的字符串中查找较短的字符串出现的次数,并返回其位置,因此无论s1,s2哪个为长字符串,位置在前在...
  • windows系统命令 findstr

    2021-08-02 22:10:16
    发现一个类似于linux的grep命令的windows命令“findstr”,在windows server上很好用。 findstr /? // 查看命令帮助。(“windows 风格”的命令,一般使用 / 指定选项) 命令语法:findstr [OPTIONS] [TERM] ...
  • 批处理中findstr命令的用户windows bat中的findstr命令一堆txt文件,显示不含特定字符的文件的文件名。(显示含某特定字符的文findstr /vm "teststring" *.txtfindstr /v /m "teststring" *.txt用findstr /v 只打印不...
  • DOS命令:findstr

    2021-02-17 21:01:17
    findstr命令,在多个文件中搜索字符串 findstr/?---查看官方帮助文档对FINDSTR的解释说明 在文件中寻找字符串。 FINDSTR [/B] [/E] [/L] [/R] [/S] [/I] [/X] [/V] [/N] [/M] [/O] [/P] [/F:file] [/C:string]...
  • 【批处理】findstr

    千次阅读 2019-10-27 18:58:32
    findstr命令。
  • FindStr 文件查找 替换

    2010-03-10 11:25:51
    搜集的资料、小说、源代码多了以后,经常连自己都搞不清什么东西存放在哪里,手工建立、维护索引太累,使用Windows自己提供的全文检索又太耗资源,这个时候用FindStr来搜就很合适,而且可以不解包直接在zip/rar中...
  • bat的findstr替换字符串

    2021-06-10 10:32:05
    CODEPAGE=windows-936-2000 set s2=LOCAL_CODEPAGE=cp1252 for /f "delims=:" %%a in 批处理命令findstr怎样查找多个字符串for %%a in ("123" "abc 12" "啊哈" "百度 一下") do findstr /c:"%%~a" file.txt>>new.txt...
  • 查找替换工具FindStr

    2013-10-08 11:51:30
    查找替换工具FindStr 可以方便的查找并替换文件中的代码或文本
  • CMD - 查找 findstr

    2020-09-06 23:12:01
    Shell - CMD查找findstr 查找 findstr > findstr /? 在文件中寻找字符串。 FINDSTR [/B] [/E] [/L] [/R] [/S] [/I] [/X] [/V] [/N] [/M] [/O] [/P] [/F:file] [/C:string] [/G:file] [/D:dir list] [/A:color ...
  • 原标题:dos命令findstr教程,查找搜索文本文件字符串,一般正则表达式大家好,我是老盖,首先感谢观看本文,本篇文章做的有视频,视频讲述的比较详细,也可以看我发布的视频。 今天我们学习findstr这个命令,它这个...
  • FINDSTR [/B] [/E] [/L] [/R] [/S] [/I] [/X] [/V] [/N] [/M] [/O] [/P] [/F:file]  [/C:string] [/G:file] [/D:dir list] [/A:color attributes] [/OFF[LINE]]  strings [[drive:][path]f...
  • FindStr 文本查找

    2013-10-09 13:47:18
    FindStr 文本查找工具 一牛人写的。搜索效率还挺高。建议收藏
  • 高仿大漠找字FindStr

    2022-03-21 14:27:32
    C++高仿大漠找字FindStr 字库就用大漠字库就可以了。 大家先来看看效果图: 砸门先制作一个这样的字库: 上面就是我定义的方字!当然了随你高兴写成什么字都可以。 但是最高不能超过256个字节 效果图如下: 看下调...
  • windows统计数据库连接数批处理及find和findstr查找命令并创建批处理bat脚本@echo onset CurDate=%date:~0,10%set CurTime=%time%set hh=%CurTime:~0,2%if /i %hh% LSS 10 ( set hh=0%CurTime:~1,1% )set mm=%...
  • Windows provides findstr tool to search file contents. These file contents expected to be text and string but binary binary files are accepted too. But searching binary files and content will not ...
  • a=strfind(c,'dfe') r=a 二.findstr函数 findstr(s1,s2)--在较长的字符串中查找较短的字符串出现的次数,并返回其位置。 说明:无论s1,s2哪个为长字符串,位置在前在后都没有关系。 例子: function r=myfun2 rand...
  • netstat -ano|findstr

    2021-09-27 10:27:59

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 50,999
精华内容 20,399
关键字:

findstr