dos命令findstr指定字节内的搜索字符串

时间:2013-08-14 10:01:17

标签: dos findstr

我可以使用findstr来搜索指定字节/位置之间的字符串..

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

我想在字节数50到100之间搜索一个字符串的行吗?

1 个答案:

答案 0 :(得分:0)

使用正则表达式(正则表达式)解决问题相对容易。但不幸的是,FINDSTR对正则表达式的支持非常有限。它没有解决问题所需的功能。

您可以使用grep for Windows代替FINDSTR,但这需要下载。

假设您想在“file.txt”中的任意一行的位置50和100之间找到my string

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
)