Come dividere file di grandi dimensioni su Windows?


75

Esiste uno strumento per dividere file di testo di grandi dimensioni (9Gb) in file più piccoli in modo da poterlo aprire e consultare?

Qualche cosa utilizzabile dalla riga di comando fornita con Windows (XP)?

O qual è il modo migliore per dividerlo? Posso usare 7z per creare volumi separati e quindi decomprimerne uno separatamente? Sarà leggibile o avrà bisogno di tutte le altre parti per decomprimere nuovamente nel file di grandi dimensioni?

Aggiornare

Ho messo insieme un veloce script in python a 48 righe che divide il file di grandi dimensioni in file da 0,5 GB che sono facili da aprire anche in vim. Ho solo bisogno di guardare i dati verso l'ultima parte del registro (sì, è un file di registro). Ogni record è suddiviso su più righe, quindi grep non lo farebbe.


Ti vedo modificato per citare grep. Hai cygwin o unxutils installato? Avresti potuto usare grep -ncon heade tailper vedere pezzi del file. Esempio, grep -n "something" file.txtritorna 95625: something. Volete vedere quella linea e 9 linee di sotto di essa per un totale di 10 linee: head -n 95635 file.txt | tail -n 10.
John T,

Ho notato che hai risolto il tuo problema, se sei ancora in giro, potresti pubblicare la soluzione in modo che altri possano trarne beneficio?
Journeyman Geek

Questo è stato discusso in dettaglio in Stack Overflow [1] [1]: stackoverflow.com/questions/159521/…
Rishi Dua,

Risposte:


43

Esiste uno splitter di file Windows freeware chiamato HJSplit

Disponibile qui . Il sito Web afferma di poter dividere file di qualsiasi tipo e dimensione, ma 9 GB è un file di grandi dimensioni.


1
Secondo l'editore, supporta la suddivisione dei file "oltre 100 Gigabyte"
yosh m

8
Sono stato in grado di utilizzare questo programma per dividere un file di grandi dimensioni in pezzi più piccoli, ma solo per dimensioni (kB o MB). Non rispetta le linee, quindi non è molto utile per dividere i file di registro. È anche molto lento.
nullability

HJSplit funziona così brutto ... Non funziona con file 5Gb +. La maggior parte del file sta semplicemente perdendo. Chunck prende in giro i nofus dopo il 999 e qualcos'altro fallisce se si usa un pease più grande
user2602807,

Sui sistemi a 64 bit funziona solo con una GUI in Windows. Se vuoi automatizzare le cose, questa non è una soluzione
576i

24

Il pacchetto GNU Core Utils (disponibile qui per Windows) include l'utilità Split. Funziona bene per me :-)

La documentazione --help è la seguente:

Usage: split [OPTION] [INPUT [PREFIX]]
Output fixed-size pieces of INPUT to PREFIXaa, PREFIXab, ...; default
size is 1000 lines, and default PREFIX is `x'.  With no INPUT, or when INPUT
is -, read standard input.

Mandatory arguments to long options are mandatory for short options too.
  -a, --suffix-length=N   use suffixes of length N (default 2)
  -b, --bytes=SIZE        put SIZE bytes per output file
  -C, --line-bytes=SIZE   put at most SIZE bytes of lines per output file
  -d, --numeric-suffixes  use numeric suffixes instead of alphabetic
  -l, --lines=NUMBER      put NUMBER lines per output file
      --verbose           print a diagnostic to standard error just
                            before each output file is opened
      --help     display this help and exit
      --version  output version information and exit

SIZE may have a multiplier suffix: b for 512, k for 1K, m for 1 Meg.

Ad esempio, per dividere input.txt in blocchi da 100 Mb, suddividendolo solo alle estremità delle linee,

split input.txt -C 100m

ti darà file di output chiamati xaa, xab, xac, ecc.


2
ad esempio git msys download include anche l'utilità.
eis,

Cmder è fantastico per questo
Umber Ferrule

15

Un altro è GSplit - secondo il loro sito può dividere file molto grandi (più grandi di 4 Gb <- poiché hanno superato il limite di 4 Gb, immagino che possano fare anche 9 Gb).

Ma un'altra cosa: dici che vuoi dividerlo in parti più piccole in modo da poterlo aprire e guardarlo. Sembra un file di registro forse molto grande.

In ogni caso, per aprire file di testo di grandi dimensioni, posso raccomandare EmEditor : sostengono di poter aprire file di grandi dimensioni (fino a circa 250 Gb) e l'ho usato in passato per file fino a 2 Gb. Ma in ogni caso, penso che potrebbe essere una soluzione migliore della scissione.


Ho appena provato GSplit. Funziona, anche se attraverso un'interfaccia confusa, ma non offre alcun modo per dividere solo in un'interruzione di linea - per dividere i file di dati ASCII, quindi, non è troppo utile poiché la divisione sarà a metà strada attraverso una linea.
Vola

1
@Flyto In realtà è possibile dividere per linea se si sceglie "Dividi dopo occorrenza numero" sotto il Pieces > Type and Sizemenu. Quindi scegliere il numero di linee e il delimitatore di linea in esadecimale. Di default ha il formato Windows CR + LF ( 0x0D0x0A).
nullability

@nullability thanks - Non ci avrei pensato. Ma ho trovato una soluzione molto più semplice tramite l'utilità GNU "split" - vedi la mia nuova risposta :-)
Flyto

9

Dai un'occhiata al Visualizzatore di file di testo di grandi dimensioni , è ottimo per cose come questa. La maggior parte degli archivi e dei divisori separerà il file in pezzi che non possono essere utilizzati per leggere ogni dato in modo indipendente e corretto, è necessario estrarli tutti per recuperare il file.

testo alternativo

Il visualizzatore di file di testo di grandi dimensioni è gratuito e portatile.


3
Il collegamento sembra interrotto, funziona ora: softpedia.com/get/Office-tools/Other-Office-Tools/…
huseyint

Il link originale (o modificato?) Funziona ora; Prenderei quel link su softpedia ogni giorno! Inoltre, ho appena provato LTFViewer ed è fantastico, ha aperto un file di 818 MB che anche Notepad ++ si è lamentato dell'apertura. Non molto in termini di modifica delle funzionalità, ma una volta visualizzati i log in LTFViewer, ho echo. > myfile.txtrisolto il problema del file di log da 818 MB: D
Doktor J

LTFViewer è davvero eccezionale (lo sto usando per), ma c'è un limite. Ho provato ad aprire un file SQL da 3 GB con esso, ma si blocca. Mayby non avevo abbastanza pazienza o qualcosa del genere ...
Mathlight

LTFViewer ha funzionato molto bene per me. L'ho usato su un file (relativamente) più piccolo, solo 750 MB, ma l'ho aperto in meno di 5 secondi.
Mike_OBrien,

Puoi scaricarlo dall'archivio Internet: web.archive.org/web/20151019115332/http://swiftgear.com
quip

8

È possibile utilizzare 7-Zip per creare segmenti di file di testo in determinate dimensioni (ad es. Segmenti da 100 MB su file di registro da 1,5 GB).

Le opzioni chiave sono: Usa "Store" anziché "Comprimi" - Usa "Dividi in volumi"

Dovresti essere in grado di vedere il testo nei file .001 (.nnn).

inserisci qui la descrizione dell'immagine


L'immagine allegata è perfetta!
Erik,

5

Puoi usare 7zip stesso per dividere i file. (Puoi salvare in formato .zip o .7z.) Quando vai a creare l'archivio c'è un'opzione chiamata "Dividi volume, byte". Basta selezionare quanto grande vuoi i pezzi.

E sì, puoi decomprimerlo singolarmente se lo desideri.

Dividi i file in 7zip


1

C'è uno strumento online che divide i file di testo se qualcuno sta cercando di dividere rapidamente i file. http://www.textfilesplitter.com .

Funziona benissimo per me. E divide i file rispettando le linee che è quello che stavo cercando. Dice anche che è tutto lato client HTML5, quindi è sicuro da usare. Non sono sicuro di quanto possa essere grande, ma penso che dipenda dall'ariete della tua macchina.


4
Stai davvero suggerendo di caricare un file da 9 GB per averlo diviso nel tuo browser ?? Veramente??
spaghettidba

@spaghettidba: dice che funziona sul lato client usando HTML5. In tal caso, non è necessario caricarlo. Lo ammetto, ho avuto la stessa reazione di te quando ho letto la risposta per la prima volta, comunque.
mwolfe02,

0

L'idea di vedere parte del file prima di decidere cosa farne è per me l'opzione migliore.

L'app Large Text Viewer può essere installata su Windows tramite Microsoft Store e offre un'opzione per tagliare il file in blocchi di dimensioni. Può darsi che utilizzi lo stesso editor precedentemente menzionato (dietro le quinte), ma l'opzione per installarlo da una fonte nota è IMHO migliore dei link alternativi offerti. Ha funzionato benissimo per me.

L'unico problema se si divide per dimensione è che non necessariamente rompe il file in una buona posizione, quindi potrebbe essere necessario modificarlo per acquisire il contenuto esatto desiderato.


1
Si prega di modificare la risposta per includere il nome dell'app, in modo che possa essere indicizzato e trovata da ricerca.
Scott,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.