【问题标题】:DOS findstr to find all the lines with text between quotesDOS findstr 查找引号之间的所有行
【发布时间】:2013-03-27 21:11:38
【问题描述】:

如何用 findstr 检索多行中 "" 之间的所有文本? 例如我有:
1号线
2号线
3号线
“4号线
5号线
6号线
"
7号线
8号线

我需要返回
4号线
5号线
第 6 行

【问题讨论】:

标签: regex dos findstr


【解决方案1】:

正在处理您的样本数据...这是我可以做到的最好的结果,而无需过多的刻板努力。

'file'txt' 包含您的数据...

@echo off
setlocal enabledelayedexpansion

set quote=

for /f "tokens=*" %%a in (file.txt) do (
  set str=%%a
  set str=!str:"=:!

  if not "!str!"=="!str::=!" (
    if defined quote (
      set quote=
      for %%b in (^"%%a) do set str=%%~b
      if not "!str!"=="" if not "!str: =!"=="" echo !str!
    ) else (
      set quote=1
      for %%b in (%%a^") do set str=%%~b
    )
  )

  if defined quote (
    if not "!str!"=="" if not "!str: =!"=="" echo !str!
  )
)

【讨论】:

  • 您上面的示例完美运行,但是我无法找到包含某个字符串的引号之间的所有行。所以让我们在上面的例子中说,只有当引号之间的文本包含第 5 行时,我才需要返回第 4 行第 5 行第 6 行(引号之间的所有行和上面的换行符)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-14
  • 2013-11-15
  • 1970-01-01
  • 1970-01-01
  • 2013-08-05
相关资源
最近更新 更多