windows 命令之findstr and find

linux 下使用grep 命令很方便,于是想着找一个windows 类似的命令,于是找到了findstr,记录下来,方便后续查看,

使用方式为,

windows 命令窗口敲 'findstr /? '可以查看详细使用方法。


C:\Users\xxx>findstr /?xxx
在文件中寻找字符串。

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 常见表达法的详细情况,请见联机命令参考。
 

举例说明,

1.在当前目录以及子目录查找带有 "hello" 字符串的文件,并列出文件名

D:\log>findstr /S /I /M "hello" *.*
1\11_09_17_06_56_log.log
1\11_10_09_57_40_log.log
1\11_10_10_36_52_log.log
1\11_10_11_47_35_log.log

2.在当前目录以及子目录查找 "APM" 字符串,并列出每一行

D:\log>findstr /S /I  "APM" *.*
1\11_09_17_06_56_log.log:[09_57_21]console:/ # setprop log.tag.APM_AudioPolicyManager V
1\11_10_09_57_40_log.log:[09_58_45]11-10 09:57:34.885   354   354 V APM_AudioPolicyManager: listAudioPorts() role 0 type 0 num_ports 0 ports 0xefa0fdf0
1\11_10_09_57_40_log.log:[09_58_45]11-10 09:57:34.886   354   354 V APM_AudioPolicyManager: listAudioPorts() got 0 ports needed 8
1\11_10_09_57_40_log.log:[09_58_45]11-10 09:57:34.886   354   354 V APM_AudioPolicyManager: listAudioPorts() role 0 type 0 num_ports 8 ports 0xeb142d60
1\11_10_09_57_40_log.log:[09_58_45]11-10 09:57:34.890   354   354 V APM_AudioPolicyManager: listAudioPorts() got 8 ports needed 8

除了findstr 还有一个简易命令find

D:\log>find /?
在文件中搜索字符串。

FIND [/V] [/C] [/N] [/I] [/OFF[LINE]] "string" [[drive:][path]filename[ ...]]

  /V         显示所有未包含指定字符串的行。
  /C         仅显示包含字符串的行数。
  /N         显示行号。
  /I         搜索字符串时忽略大小写。

  /OFF[LINE] 不要跳过具有脱机属性集的文件。
  "string" 指定要搜索的文本字符串。
  [drive:][path]filename
             指定要搜索的文件。

如果没有指定路径,FIND 将搜索在提示符处键入
的文本或者由另一命令产生的文本。

举例说明,

D:\log\2>find /I /N "hello" *.*

---------- 1.TXT
[1]hello1
[2]hello2 world

---------- 2.TXT
[1]hello1
[2]hello2 world

---------- 3.TXT
[1]hello1
[2]hello2 world

---------- 4.TXT
[1]hello1
[2]hello2 world

D:\log\2>find /I  "hello" *.*

---------- 1.TXT
hello1
hello2 world

---------- 2.TXT
hello1
hello2 world

---------- 3.TXT
hello1
hello2 world

---------- 4.TXT
hello1
hello2 world

D:\log\2>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值