【问题标题】:How to pipe a file to Find command in cmd.dir/s *.txt>search.txt|find "name" is not working如何将文件通过管道传输到 cmd.dir/s *.txt>search.txt|find "name" 中的 Find 命令不起作用
【发布时间】:2013-10-04 20:24:30
【问题描述】:

我想在不使用 dir/s subhang.txt 的情况下查找名为 name 的文件是否存在。你能告诉我如何使用管道以及如何使用管道连接两个 C 程序

【问题讨论】:

  • 欢迎来到 Stack Overflow。您似乎在问两个不同的问题——一个是关于如何查找文件是否存在,另一个是关于使用管道连接程序。如果你一次只问一个问题,你会得到更好的答案。
  • 对不起,我对 PIPES 的学习更加热情。

标签: c cmd pipe


【解决方案1】:

命令:

dir/s *.txt >search.txt | find "name"

... 不起作用,因为dir/s 的输出进入文件search.txt。如果你尝试:

dir/s *.txt | find "name"

...这会将find 的结果输出到控制台,或者

dir/s *.txt | find "name" >search.txt 

... 将查找结果输出到文件search.txt

【讨论】:

  • 查找的格式为FIND <flags> "search string" <path>。有没有办法指定FIND 的参数,第一个程序的输出(在这种情况下为dir)应该通过管道传输到该参数?
  • @MinhTran:第一个程序的输出通过管道传输到find。我不清楚将dir 的输出通过管道传输到find 的参数中意味着什么。
  • 假设您有MyPatterns.txt,其中每一行都包含一个正则表达式模式,要替换到FIND"Search String" 参数中。有没有办法将该文件的每一行作为搜索字符串传送到FIND?假设你有MyPaths.txt,它包含一个文件路径列表来搜索给定的"search string",有没有办法将它作为<path>的参数传递给FIND
  • @MinhTran:只要您使用 Windows cmdfind,这两个问题的简短答案都是“否”。如果您想将Cygwinbash shell 和Unix grep 一起使用,grep -f <filename> 从文件<filename> 中获取正则表达式搜索模式,这将解决第一个问题。类似地,从文件中读取路径并搜索它们中的每一个都可以很容易地在bash 内的循环中完成(尽管在 Windows 批处理文件中会更难或不可能),例如How can I grep in a loop?
  • @MinhTran:如果您想根据您的评论提出一个单独的问题,我希望您会收到更完整的答案。
猜你喜欢
  • 2014-12-01
  • 2010-10-26
  • 2014-04-18
  • 2020-02-16
  • 2011-06-28
  • 2018-08-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多