Como posso extrair sub-strings usando a linha de comando do windows?

2

Por exemplo, digamos que eu tenha um arquivo chamado testfile.txt que contém uma lista de nomes de arquivos com o seguinte formato:

A       svn\New Text Document.txt
M       svn\Table_tblVersion.xml

Existe um comando para canalizar o testfile.txt para que os primeiros 8 caracteres de cada linha sejam removidos. A saída que quero é simplesmente:

svn\New Text Document.txt
svn\Table_tblVersion.txt
    
por David 05.05.2011 / 11:34

3 respostas

2

Você precisa executar o comando for no conteúdo do arquivo:

for /f "tokens=1*" %a in (testfile.txt) do echo %b

Não é nem de longe tão versátil como cut em GnuWin coreutils , mas funciona.

    
por 03.11.2011 / 18:22
1

Eu realmente recomendo Powershell para essas tarefas. É integrado ao Windows 7 e você pode baixá-lo para versões mais antigas do Windows.

O comando é:

get-content testfile.txt | ForEach-Object {$_.Substring(8)} | write-host
    
por 05.05.2011 / 12:07
0

Etapa 1. Instale o Cygwin , UnxUtils ou GnuWin32

Etapa 2. cut -c9-99 testfile.txt

Se você precisar usar um canal: cat testfile.txt | cut -c9-99

    
por 05.05.2011 / 12:02