【问题标题】:Find specific text in files在文件中查找特定文本
【发布时间】:2013-02-13 11:54:31
【问题描述】:

正如标题所说的那样简单......我想我可以使用这些命令,因为find 命令在它的帮助上说了什么,但它对我不起作用。我错过了什么吗?

dir /s /f *.txt | find "READONLY"

因此,我想在每个 .txt 文件中找到“READONLY”一词的每一次出现。

编辑: 在写这个问题时,我寻找建议并且出现了findstr 命令。但它根本找不到任何东西。

【问题讨论】:

    标签: windows shell command-line windows-8


    【解决方案1】:

    我不确定你想做什么。

    /F 选项对 DIR 命令无效。 更正 - 我听说 /F 选项是 Windows 8 的一项功能。 忽略这个问题,您的命令正在尝试查找字符串READONLY 在 DIR 命令的输出中。除非文件夹或文件名的名称中包含“READONLY”文本,否则这种情况永远不会发生。

    如果要列出文件内容中包含“READONLY”的文件,则:

    findstr /s /m READONLY *.txt
    

    以上内容区分大小写。如果您希望不区分大小写,请添加/I 选项。

    findstr /s /m /i READONLY *.txt
    

    如果你想列出具有 READONLY 属性的文件,(你不能修改它们),那么

    dir /s /ar *.txt
    

    【讨论】:

    • /f(完整路径)是 Windows 8 中 dir 的有效标志
    • 你是对的!我正在使用管道磨损。这个成功了谢谢findstr /s /m /i READONLY *.txt
    • 我选择这个作为答案,因为它看起来更简单
    • @sebastian - 感谢您提供有关 /F 选项的信息。生活和学习:-)
    【解决方案2】:

    在每个 .txt 文件中查找单词“READONLY”的每次出现[从当前目录递归开始]

    for /f "tokens=1 delims=" %f in ('dir/s/b *.txt') do findstr "READONLY" %f
    

    如果您在脚本中运行,请务必将 % 替换为 %%。

    【讨论】:

    • 我认为它必须比使用 for 容易得多,因为 find 说您可以从其他命令管道文件。谢谢
    【解决方案3】:

    尝试使用

    grep -R 'READONLY' *.txt
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-12-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-10
      相关资源
      最近更新 更多