FINDSTR:行太长

FINDSTR:行太长

WindowsFINDSTR命令对于筛选大量数据很有用;它过滤掉与指定模式或字符串匹配或不匹配的文本行(如 GNU/BSD grep)。

但它拒绝输出超过一定长度的行。是否有(原生)替代方案、修复或解决方法?

答案1

更好的内置替代方案是 PowerShell 的选择字符串(或其别名sls

Select-Stringcmdlet 在输入字符串和文件中搜索文本和文本模式。您可以在 UNIX 或Windows 中使用Select-String类似的命令。grepfindstr.exe

选择字符串

请注意Select-String,与大多数替代方案不同,默认情况下会进行不区分大小写的搜索

答案2

SS64FINDSTR - 转义和长度限制说:

行长度限制

作为命令行参数或通过选项指定的文件/F:FILE没有已知的行长度限制。对不包含单个 <LF> 的 128MB 文件成功运行了搜索。

管道数据和重定向输入每行限制为 8191 个字节。此限制是 FINDSTR 的“功能”。它不是管道或重定向所固有的。使用重定向的标准输入或管道输入的 FINDSTR 永远不会匹配任何 >=8k 字节的行。>=8k 的行会向 stderr 生成错误消息,但如果在至少一个文件的至少一行中找到搜索字符串,则 ERRORLEVEL 仍为 0。

致谢:
Dave Benham - 列表FINDSTR 未记录的功能和限制堆栈溢出

答案3

如果长度超过 255,只需包含选项/L,它就可以工作

findstr findstr /V /L /G:%processfolder%%previousfile% %incoming%%incomingfile%  

相关内容