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

Qual è l'equivalente per Windows del comando Unix cat?

Voglio fare esattamente quello che fa unix “cat”, ma sul mio PC. Esiste un semplice comando equivalente per la riga di comando di Windows?

In particolare voglio creare un file da tutti i file di un dato tipo in una cartella

In Unix:

cat *fna >all_fna_files.fna

(che unisce tutti i file di testo “.fna” in un unico grande file di testo)

Risposte (3)

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

type

Funziona attraverso command.com, cmd, e PowerShell (anche se in quest'ultimo è uno pseudonimo per Get-Content, così come cat, quindi si potrebbe usare uno dei due). Dall'articolo Wikipedia (sottolineatura mia):

In informatica, type è un comando in vari VMS. Interpreti a riga di comando (shell) AmigaDOS, CP/M, DOS, OS/2 e Microsoft Windows come COMMAND.COM, cmd.exe, 4DOS/4NT e Windows PowerShell. Viene utilizzato per visualizzare il contenuto dei file specificati. È analogo al comando cat di 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

Dalla shell di comando:

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

(Ma questo segue il comando shells uso di controllo-Z come marcatore di fine file, quindi non adatto in alcuni casi).

In PowerShell:

&001 &001

e si può controllare (usando il parametro -Encoding) la codifica del file (che permette la transcodifica usando codifiche diverse per la lettura e la scrittura).

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

Ho appena usato il comando cat in DOS (Windows 7 Pro) nel modo seguente e ho unito con successo 3 file (log1.txt, log2.txt, log3.txt) in un unico file:

cat log*.txt >> myBigLogFile.txt
``` &001 


Nota: anche `cat log*.txt > myBigLogFile2.txt` fornisce lo stesso risultato, ma sovrascriverà il file precedente.