Questão Qual é o equivalente do Windows do gato de comando Unix?


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 eu 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)


124


origem


Nenhuma dessas sugestões pode aceitar um redirecionamento de STDIN. - will
Powershell: cat file.txt - Kolob Canyon


Respostas:


type

Ele funciona do outro lado command.com, cmde PowerShell (embora no último é um alias para Get-Contentassim é cat, então você poderia usar qualquer um). De Artigo da Wikipédia (ênfase minha):

Na computação, type é um comando em vários VMS. AmigaDOS, CP / M, DOS, OS / 2 e Microsoft Windows interpretadores de linha de comando (shells), como COMMAND.COM, cmd.exe, 4DOS / 4NT e Windows PowerShell. É usado para exibir o conteúdo de arquivos especificados. É análogo ao comando do Unix cat.

C:\>echo hi > a.txt
C:\>echo bye > b.txt
C:\>type a.txt b.txt > c.txt
C:\>type c.txt
hi
bye

161



O gato não parece muito melhor. - David Boike
@DavidBoike Embora cat seja de con_cat_enate AFAIR. - Mark Hurd
@davidboike É muito melhor porque na verdade significa e significa o que faz: O programa cat é um utilitário Unix padrão que concatena e lista arquivos. O nome é uma abreviação de catenate, um sinônimo de concatenado.  Artigo da Wikipédia Você pode dizer o mesmo para o MS-DOS type comando?? - PenguinCoder
@PenguinCoder Exceto type não concatena arquivos; é só types seu conteúdo para a tela. É o encanamento no exemplo que está realmente combinando os arquivos, não o type comando. - Andy
MS-DOS provavelmente herdado TYPE de CP / M por meio de QDOS. O comando TYPE exibe o conteúdo do arquivo de origem ASCII ufn no disco atualmente registrado no dispositivo de console. - Michael Kjörling


No shell de comando:

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

(Mas isso segue as shells de comando usando 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 -Encoding parâmetro) a codificação do arquivo (que permite a transcodificação usando codificação diferente para a leitura e gravação).


19



Aliases do PowerShell cat para Get-Content também. Ele foi projetado para aceitar muitos comandos básicos do Linux sem muita modificação. - Bob
Bob, exceto se opções e opções estiverem envolvidas. - Joey
@Richard: Copiar / b a + b + c output.txt não verifica no Ctrl-Z. Ambas as variantes copiarão o arquivo inteiro se NÃO houver ctrl-Z no arquivo. - Tonny
Note que você pode incluir curingas também, a forma como os caracteres curinga funcionam no Windows significa que você não será prejudicado pela lista de expansão que não contém um +, assim copy [/b] *.fna all_fna_files.fna.. - Random832
se eu me lembro de um teste antigo que fiz uma vez, usando COPY com / B para concatenar, ignoro os marcadores CTRL-Z / EOF e farei a concatenação corretamente! mas a julgar pela cópia /? você pode precisar fazer um monte de / B como parece que talvez depois de copiar, depois de cada arquivo src e depois do arquivo dest .. estranho. - barlop


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 

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


2



talvez você tenha o GNU para Windows, ou o Cygwin em seu caminho, ou esteja usando o powershell porque o gato não existe em um sistema Windows 7 limpo. O DOS não é mais uma coisa, mas a maioria das pessoas o usaria para se referir ao cmd.exe. - Shanteva
Windows CMD e MS-DOS não são a mesma coisa. Não há cat comando no cmd e no DOS, somente cat alias no powershell - phuclv
você também pode usar type comando type *.txt > file.merge - Riz