Script para mesclar uma linha específica de vários arquivos .txt em um arquivo .txt

1

Eu tenho ~ 800 arquivos .txt. Eu preciso extrair o nome de cada arquivo e uma linha dentro do arquivo e exportá-lo para um novo arquivo .txt.

A linha que eu preciso copiar sempre começará com "Tempo de inicialização do sistema":

Eu gostaria que saísse dentro do novo arquivo .txt assim:

txtfile1

Tempo de inicialização do sistema: xx / xx / xxxx

txtfile2

Tempo de inicialização do sistema: xx / xx / xxxx

txtfile3

Tempo de inicialização do sistema: xx / xx / xxxx

etc ...

Quais comandos posso usar para fazer isso?

    
por Snugglasaurus 03.03.2016 / 01:14

2 respostas

0

Eu preciso extrair o nome de cada arquivo e uma linha dentro do arquivo e exportá-lo para um novo arquivo .txt.

The line I need to copy will always start with System Boot Time:

I'd like it to output inside the new .txt file something like this:

txtfile1
System Boot Time: xx/xx/xxxx
txtfile2
System Boot Time: xx/xx/xxxx
txtfile3
System Boot Time: xx/xx/xxxx

Use o seguinte arquivo em lotes.

Merge.cmd:

@echo off
setlocal 
for /f "useback delims=: tokens=1-3" %%i in ('findstr /C:"System Boot Time:" "*.txt"') do (
  echo %%i >> new.txt
  echo %%j:%%k >> new.txt
)
endlocal

Exemplo de saída:

F:\test>type ?.txt

1.txt


System Boot Time: 01/01/1900

2.txt


System Boot Time: 01/02/2003

3.txt


System Boot Time: 02/03/2004

F:\test>merge

F:\test>type new.txt
1.txt
System Boot Time: 01/01/1900
2.txt
System Boot Time: 01/02/2003
3.txt
System Boot Time: 02/03/2004

Notas:

  • Todos os arquivos correspondentes a *.txt são pesquisados por uma string correspondente a "Tempo de inicialização do sistema"
  • Os resultados são enviados para new.txt
  • Se você quiser executar Merge.cmd várias vezes, lembre-se de del new.txt primeiro.

Leitura Adicional

por 03.03.2016 / 13:46
0
  • Você pode usar sed ou até grep para gerar uma linha a partir de um arquivo de texto.

    (ah, vejo que você está no Windows. Se você não tiver o grep ou o sed instalado, deverá usar findstr ).

  • Coloque este comando em um loop sobre os arquivos necessários.
  • Redirecionar a saída para um arquivo.
por 03.03.2016 / 04:33