Se ho un file di grandi dimensioni e devo dividerlo in blocchi da 100 megabyte, lo farò
split -b 100m myImage.iso
Questo di solito mi dà qualcosa di simile
xaa
xab
xac
xad
E per rimetterli insieme ho usato
cat x* > myImage.iso
Sembra che ci dovrebbe essere un modo più efficiente di leggere ogni riga di codice in un gruppo di file con cat
e reindirizzare l'output su un nuovo file. Come un modo per aprire solo due file, rimuovere il EOF
marker dal primo e collegarli, senza dover passare attraverso tutti i contenuti.
Windows / DOS ha un comando di copia per i file binari. La guida menziona che questo comando è stato progettato per essere in grado di combinare più file. Funziona con questa sintassi: ( /b
è per la modalità binaria)
copy /b file1 + file2 + file3 outputfile
Esiste qualcosa di simile o un modo migliore per unire file di grandi dimensioni su Linux rispetto a cat?
Aggiornare
Sembra che cat
sia in effetti il modo giusto e il modo migliore per unire i file. Sono contento di sapere che stavo usando il comando giusto da sempre :) Grazie a tutti per il vostro feedback.
cat x*
te potresti prendere in considerazione l'espansione delle parentesi graffe, cat xa{a..g}
che espande la sequenza specificata in cat
xaa xab xac xad xae xaf xag
cat x*
? Anche le nuove impostazioni locali non influirebbero in split
modo tale che se split
e cat x*
fossero utilizzate sullo stesso sistema funzionerebbero sempre?
split.c
in GNU Coreutils, i suffissi sono costruiti da una matrice fissa di caratteri: static char const *suffix_alphabet = "abcdefghijklmnopqrstuvwxyz";
. Il suffisso non sarebbe influenzato dalla locale. (Ma non credo che nessun locale sano possa riordinare le lettere minuscole; anche EBCDIC mantiene il suo ordine standard.)
cat x*
, perché l'ordine dei file dipende dalle impostazioni locali. Meglio iniziare a digitarecat x
, che premere Esc e quindi*
: vedrai l'ordine espanso dei file e puoi riorganizzare.