Windows cmd中使用管道过滤命令(类似linux的grep)

平时使用linux习惯了,管道命令是使用非常高频的,使用cmd也是想要,但是平时使用很少所以就忘记了,这里做个笔记。

cmd中使用管道命令使用FINDSTR

findstr是Window系统自带的命令,用途是查找指定的一个或多个文件文件中包含(或通过参数 /V来控制不包含)某些特定字符串的行,并将该行完整的信息打印出来,或者打印查询字符串所在的文件名。

语法:

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 前缀,请使用空格隔开搜索字符串。

示例:

在文件aa.txt中查找”hello”或 “there” :
findstr “hello there” aa.txt
在文件aa.txt中查找”hello there”:
findstr /c:”hello there” aa.txt
在Proposal.txt中查找首字母大写的“Windows”:
findstr Windows proposal.txt
要在当前目录及其子目录找查找包含不区分大小写的“Windows”的文件:
findstr /s /i Windows .
要查找没有或有多个空格开头的且包含“FOR”字符的行,并显示行号:
findstr /b /n /r /c:”^ *FOR” *.bas
查找一系列文件中的多个字符串,可以创建一个包含字符串的文本文件,要查找到的文件放在另一个文本文件中列出。例如,包含字符串的文本文件叫Stringlist.txt,包含文件的文本文件叫Filelist.txt,并将结果输出到Results.out:
findstr /g:stringlist.txt /f:filelist.txt > results.out
要列出当前目录中包含忽略大小写的单词“computer”的文件:
findstr /s /i /m “\<computer>” .
要查找包含单词 “computer”或”comp”开头的单词的文件:
findstr /s /i /m “\<comp.*” *.*

相关文章

发表回复

您的电子邮箱地址不会被公开。