2012-06-10 07:22:07 +0000 2012-06-10 07:22:07 +0000
224
224

¿Cuál es el equivalente en Windows del comando "gato" de Unix?

Quiero hacer exactamente lo que hace “gato” de Unix, pero en mi PC. ¿Existe un simple comando equivalente para la línea de comandos de Windows?

Específicamente quiero crear un archivo a partir de todos los archivos de un tipo determinado en una carpeta

En Unix:

cat *fna >all_fna_files.fna

(que une todos los archivos de texto “.fna” en un gran archivo de texto)

Respuestas (3)

280
280
280
2012-06-10 07:47:35 +0000

type

Funciona a través de command.com, cmd, y PowerShell (aunque en este último es un alias de Get-Content, también lo es de cat, así que podrías usar cualquiera de los dos). Del artículo de Wikipedia (énfasis mío):

En informática, escribir es un comando en varios VMS. AmigaDOS, CP/M, DOS, OS/2 y los intérpretes de línea de comandos (shells) de Microsoft Windows como COMMAND.COM, cmd.exe, 4DOS/4NT y Windows PowerShell. Se utiliza para mostrar el contenido de los archivos especificados. Es análogo al comando cat de Unix.

C:\>echo hi > a.txt
C:\>echo bye > b.txt
C:\>type a.txt b.txt > c.txt
C:\>type c.txt
hi
bye
22
22
22
2012-06-10 07:33:20 +0000

Desde el shell de comandos:

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

(Pero eso sigue el uso del shell de comandos de control-Z como marcador de fin de archivo, por lo que no es adecuado en algunos casos).

En PowerShell:

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

y puede controlar (usando el parámetro -Encoding) la codificación del archivo (que permite la transcodificación usando una codificación diferente para la lectura y la escritura).

1
1
1
2015-03-20 13:41:46 +0000

Acabo de usar el comando cat en DOS (Windows 7 Pro) de la siguiente manera y he fusionado con éxito 3 archivos (log1.txt, log2.txt, log3.txt) en un solo archivo:

cat log*.txt >> myBigLogFile.txt

Nota: cat log*.txt > myBigLogFile2.txt también proporciona el mismo resultado, pero anulará el archivo anterior.