0

我可以使用 findstr 仅在指定字节/位置之间搜索字符串吗?

例如我有一个文本文件,每行最多 1000 个字节

我只想搜索字节数介于 50 到 100 之间的字符串的行?

4

1 回答 1

0

使用正则表达式 (regex) 可以相对容易地解决您的问题。但不幸的是,FINDSTR 对正则表达式的支持极为有限。它没有解决您的问题所需的功能。

您可以在 Windows 上使用 grep而不是 FINDSTR,但这需要下载。

假设您想my string在“file.txt”中的任何行上找到位置 50 和 100 之间的某个位置:

grep "^.\{49,91\}my string" file.txt

另一种选择是切换到另一种完全支持正则表达式的脚本语言。JScript、VBScript 和 PowerShell 都可以用来轻松解决这个问题。

纯本机批处理解决方案需要一个重要的脚本,而且速度要慢得多。这是一种可能的解决方案:

@echo off
setlocal disableDelayedExpansion
for /f delims^=^ eol^= %%L in (file.txt) do (
  set "ln=%%A"
  setlocal enableDelayedExpansion
  set "ln=!ln:~49,51!"
  if "!ln:my string=!" neq "!ln!" echo !ln!
  endlocal
)
于 2013-08-14T15:09:53.087 回答