【发布时间】:2011-08-17 16:16:57
【问题描述】:
根据我对 findstr 的理解,它在文件中查找文本。那么,是什么让它在文件名本身中搜索模式呢?
dir | findstr "test[0-9][0-9][0-9]test"
管道会改变其行为吗?有人解释了这个的内部工作。我知道它有效,但我不明白它是如何工作的。谢谢。
【问题讨论】:
标签: windows command dos prompt findstr
根据我对 findstr 的理解,它在文件中查找文本。那么,是什么让它在文件名本身中搜索模式呢?
dir | findstr "test[0-9][0-9][0-9]test"
管道会改变其行为吗?有人解释了这个的内部工作。我知道它有效,但我不明白它是如何工作的。谢谢。
【问题讨论】:
标签: windows command dos prompt findstr
管道将dir 的标准输出重定向到findstr 的标准输入,这是因为findstr 将使用在命令行中传递给它的参数,或者通过stdin 传递给它的任何参数。
【讨论】:
dir > temp.txt & findstr [pattern] temp.txt
我不知道findstr 本身,但它看起来与grep 相似。
它在这里所做的是获取dir(目录列表)的输出并在该输出中搜索一些字符串。然后它只输出那些匹配的行(有效地在目录列表中搜索)。
This process (called piping) 在类 Unix 操作系统中很常见。如您所见,它也存在于 Windows(以及之前的 DOS)上。
【讨论】: