Ricerca…


introduzione

A volte è utile dividere un file in più file separati. Se hai file di grandi dimensioni, potrebbe essere una buona idea scomporlo in blocchi più piccoli

Dividere un file

L'esecuzione del comando di divisione senza opzioni dividerà un file in 1 o più file separati contenenti fino a 1000 righe ciascuno.

split file

Questo creerà file chiamati xaa , xab , xac , ecc, ciascuno contenente fino a 1000 linee. Come puoi vedere, tutti loro hanno come prefisso la lettera x di default. Se il file iniziale era inferiore a 1000 righe, sarebbe stato creato un solo file di questo tipo.

Per modificare il prefisso, aggiungi il prefisso desiderato alla fine della riga di comando

split file customprefix

Ora verranno creati i file customprefixaa , customprefixab , customprefixac , ecc

Per specificare il numero di righe da emettere per file, utilizzare l'opzione -l . Quanto segue dividerà un file in un massimo di 5000 linee

split -l5000 file

O

split --lines=5000 file

In alternativa, è possibile specificare un numero massimo di byte anziché righe. Questo viene fatto usando le opzioni -b o --bytes . Ad esempio, per consentire un massimo di 1 MB

split --bytes=1MB file

Possiamo usare sed con l'opzione w per dividere un file in file mutiple. I file possono essere divisi specificando l'indirizzo o il modello di linea.

Supponiamo di avere questo file sorgente che vorremmo dividere:

cat -n sourcefile

1 Sul Ning Nang Nong
2 Dove le mucche vanno Bong!
3 e le scimmie dicono tutti BOO!
4 C'è un Nong Nang Ning
5 Dove vanno gli alberi Ping!
6 E le teiere jibber jabber joo.
7 Sul Nong Ning Nang

Comando per dividere il file per numero di riga:

sed '1,3w f1
> 4,7w f2' sourcefile

Questo scrive da line1 a line3 nel file f1 e da line4 a line7 nel file f2, dal file di origine.

cat -n f1

1 Sul Ning Nang Nong
2 Dove le mucche vanno Bong!
3 e le scimmie dicono tutti BOO!

cat -n f2 

1 C'è un Nong Nang Ning
2 Dove vanno gli alberi Ping!
3 E le teiere jibber jabber joo.
4 Sul Nong Ning Nang

Comando per dividere il file in base al contesto / modello:

sed '/Ning/w file1
> /Ping/w file2' sourcefile

Questo divide il file sorgente in file1 e file2. file1 contiene tutte le linee che corrispondono a Ning, file2 contiene linee che corrispondono a Ping.

cat file1

Sul Ning Nang Nong
C'è un Nong Nang Ning
Sul Nong Ning Nang

cat file2

Dove vanno gli alberi Ping!



Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow