学Linux的时候用grep用习惯了,就查了下Windows有没有类似的工具,发现了findstr。
查看findstr /?
的时候发现有个颜色选项:
/A:attr 指定有十六进位数字的颜色属性。请见 “color /?”
颜色属性由两个十六进制数字指定 -- 第一个对应于背景,第二个对应于前景。每个数字可以为以下任何值:
0 = 黑色 8 = 灰色
1 = 蓝色 9 = 淡蓝色
2 = 绿色 A = 淡绿色
3 = 浅绿色 B = 淡浅绿色
4 = 红色 C = 淡红色
5 = 紫色 D = 淡紫色
6 = 黄色 E = 淡黄色
7 = 白色 F = 亮白色
就想着用它来实现grep的关键字着色功能,结果查来查去没有结果。
最后在Stack Overflow上找到了答案1、 2
findstr无法把关键字以特殊颜色标记出来,但它可以实现把带有关键字的文件名以特殊颜色标记出来
示例如下:
D:\>findstr /a:04 /s /i "hello" .\*
上述示例为,在D盘下不区分大小写地、在当前目录和所有子目录中搜索内容中带有hello的文件,而输出结果如下:
但假如你使用了[/M]
选项,
/M 如果文件含有匹配项,只打印其文件名。
将上面的命令改为findstr /a:04 /s /i /m "hello" .\*
颜色标记就会再度消失。
其实还有一种情况可以显示颜色标记,就是使用[/N]
选项显示行数。
/N 在匹配的每行前打印行数。
但是结果还是不能像grep一样对关键字做标记啊。
Refences