Qual é o equivalente Windows do comando Unix cat?

130

Eu quero fazer exatamente o que o unix "cat" faz, mas no meu PC. Existe um comando equivalente simples para a linha de comando do Windows?

Especificamente, quero criar um arquivo de todos os arquivos de um determinado tipo em uma pasta

No Unix:

cat *fna >all_fna_files.fna

(que une todos os arquivos de texto ".fna" em um grande arquivo de texto)

    
por Kirt 10.06.2012 / 09:22

3 respostas

167

type

Funciona com command.com , cmd e PowerShell (embora no segundo seja um alias para Get-Content , então é cat , então você pode usar qualquer um deles). Do artigo da Wikipédia (grifo meu):

In computing, type is a command in various VMS. AmigaDOS, CP/M, DOS, OS/2 and Microsoft Windows command line interpreters (shells) such as COMMAND.COM, cmd.exe, 4DOS/4NT and Windows PowerShell. It is used to display the contents of specified files. It is analogous to the Unix cat command.

C:\>echo hi > a.txt
C:\>echo bye > b.txt
C:\>type a.txt b.txt > c.txt
C:\>type c.txt
hi
bye
    
por 10.06.2012 / 09:47
20

No shell de comando:

copy a.txt + b.txt + c.txt output.txt

(Mas isso segue as shells de comando que usam o controle-Z como um marcador de final de arquivo, então não é adequado em alguns casos).

No PowerShell:

get-content a.txt,b.txt,c.txt | out-file output.txt

e você pode controlar (usando o parâmetro -Encoding ) a codificação do arquivo (que permite a transcodificação usando codificação diferente para leitura e gravação).

    
por 10.06.2012 / 09:33
2

Acabei de usar o comando cat no DOS (Windows 7 Pro) da seguinte maneira e mesclei com sucesso 3 arquivos (log1.txt, log2.txt, log3.txt) em um único arquivo:

cat log*.txt >> myBigLogFile.txt 

Observação: cat log*.txt > myBigLogFile2.txt também fornece o mesmo resultado, mas substituirá o arquivo anterior.

    
por 20.03.2015 / 14:41