【发布时间】:2020-12-13 00:34:44
【问题描述】:
我有一个包含一些单词的变量,例如KEYWORDS ="Blue Blond Brown White Black Eyes Hair Skin",另一个只包含其中一些单词,例如
MYWORDS="BLUE BROWN EYES HAIR"
我的目录中有一些文件,例如
BlueEyesBlondHair.txt
BrownEyesBlondHair.txt
BlueEyesBrownHair.txt
BlueEyesBrownHairWhiteSkin.txt
BlueEyes.txt
BrownHair.txt
BrownEyes.txt
GreenEyesBlondHair.txt
如何检索名称包含变量MYWORDS中所有单词的文件,而不是其他?
注意:这是一个完全虚构的例子,但我认为它与我的现实非常吻合。请把所有内容都当作大写字母。
【问题讨论】:
-
本网站并非真正为您提供执行整个任务的方法。
-
@Compo 地狱,你是对的。我试图尽可能接近困扰我的任务部分,但后来我不断添加解释,现在太多了。我要重构这个。
-
您打算在使用 grep 时对文件内容使用完全匹配,还是文件名本身?换句话说,是做:
grep -l BlueEyesBrownHair *.txt还是做:grep -l %STRING% BlueEyesBrownHair.txt? -
@Gerhard:不确定我是否理解你的问题。我正在使用 grep 来获取包含该字符串的所有 txt 文件的文件名,所以
grep -l %STRING% *.txt。我不知道我需要的是 BlueEyesBrownHair,因为此信息由 %STRING% 提供 -
这是一个虚构的问题,@Gerhard,没有解决方案。举个例子,如果
%STRING%可以被拆分,就像使用find.exe一样,例如dir "*.txt" | find /i "blue" | find /i "hair" | find /i "brown" | find /i "eyes",您只能通过BlueEyesBrownHair.txt和BlueEyesBrownHairWhiteSkin.txt。但似乎不需要BlueEyesBrownHairWhiteSkin.txt,因为它带有不在%STRING%中的字符。我们可以假设要求是检索文件名中字符最少的文件吗?
标签: string file batch-file