Extraindo Linhas abaixo de Palavras Especificadas no script em lote e altere o formato

0

Eu tenho um arquivo "test.txt" no formato de:

xdfdfdf
ydffddf
zddfdfd
blah ...
WordA
12
23
45
...
32
12
65
xdfdfdf
ydffddf
zddfdfd
blah ...
WordA
54
76
67
...
68
31
85
xdfdfdf
ydffddf
zddfdfd
blah ...
WordA
89
65
45
...
32
51
75
xdfdfdf
ydffddf
zddfdfd
blah ...
....

Quero extrair apenas os números abaixo de cada "palavra A", reformatar os dados seguidos com um 2 formato de salto e faça um arquivo de saída (como "Output.txt"). Deve-se notar que o número de linhas em cada "palavra A" com dados numéricos é fixo (por exemplo, 18 linhas).

Os resultados devem estar neste formato:

12 45 ... 32 65
54 67 ... 68 85
89 45 ... 32 75
....

Alguém poderia me ajudar? Eu encontrei o FindRepl.bat, no entanto, não posso empregar o que eu quero. Eu prefiro sth simples e breve.

    
por Afrand 03.07.2015 / 09:48

1 resposta

0

Bom trabalho:

@echo off &setlocal enabledelayedexpansion
(for /f %%a in (input.txt) do (
    if "%%~a"=="WordA" (
        if defined line echo(!line:~0,-1!
        set "line="
    )
    (for /f "delims=0123456789" %%b in ("%%~a") do break) || set "line=!line!%%~a "
)
if defined line echo(!line:~0,-1!)>output.txt
    
por 08.07.2015 / 11:17