在windows系统下有没有类似grep的命令?

时间:2021-04-24 13:52:39
在unix下,可以用grep命令在批量文件里查找关键字,并返回包含关键字的行的内容
比如说:
$ grep "vodisp" *.4gl
2Capi.4gl:      define rtn_zvf,rtn_rzvf,rtn_yshvf,rtn_gyshvf,rtn_jmje like tac
vodisp:charge.rzbf
VhargOth.4gl:   FROM vodisp:chgedtl
VdrAbortInput.4gl:      DEFINE ld_zvf,ld_rzvf,ld_yshvf,ld_gyshvf,ld_jmje like tac
vodsp:charge.rzvf
vdrSrdInput.4gl:                        FROM vodisp:charge
IndemCase.4gl:  FROM vodisp:indamvi a,vodisp:indabi b
VlcInput.4gl:  DEFINE lr_voli RECORD LIKE vodisp:volice.*
VcInput.4gl:  DEFINE la_voldtl ARRAY[100] OF RECORD LIKE vodisp:voldtl.*
VlcInput.4gl: DEFINE lr_vehinsu RECORD LIKE vodisp:vegnsu.*
VlcInput.4gl:   FROM vodisp:policie
VlcInput.4gl:   FROM vodisp:veninsu
wtInput.4gl:   SELECT * FROM vodisp:voldtl
wtcPrint.4gl:                                   from vodisp:chgdle

求教各位大虾和高人,在microsoft windows系统下有没有类似的命令啊?或者是哪个软件有类似的功能?
有个find命令我试过,但是不好使,主要是不支持通配符的批量查找,还有它只能
返回关键字所在的行数,不能返回关键字所在的行的内容

5 个解决方案

#1


I think starting from Windows 2000, you can use FINDSTR. Try findstr /? for a start.

#2


太好了,谢谢!

#3


查找所有文件里 包含后 vodisp的行 把结果写入到log.txt
type *.4gl |find "vodisp" > log.txt

#4


刚试了2命令的不同:

type *.4gl |find "vodisp" > log.txt
如果有几个文件,而几个文件中包含有vodisp完全相同的行不会重复显示出来

而:findstr "vodisp" *.4gl >log2.txt
如果有几个文件,他会把所有的包含有vodisp的行都显示出来,包括重复的。

具体看你想什么看结果了?

#5


更正:
刚测试有误,两个命令的效果是完全一样的,不好意思

#1


I think starting from Windows 2000, you can use FINDSTR. Try findstr /? for a start.

#2


太好了,谢谢!

#3


查找所有文件里 包含后 vodisp的行 把结果写入到log.txt
type *.4gl |find "vodisp" > log.txt

#4


刚试了2命令的不同:

type *.4gl |find "vodisp" > log.txt
如果有几个文件,而几个文件中包含有vodisp完全相同的行不会重复显示出来

而:findstr "vodisp" *.4gl >log2.txt
如果有几个文件,他会把所有的包含有vodisp的行都显示出来,包括重复的。

具体看你想什么看结果了?

#5


更正:
刚测试有误,两个命令的效果是完全一样的,不好意思