Dividere un file di testo a metà (o qualsiasi percentuale) su Ubuntu Linux

Dividere un file di testo a metà (o qualsiasi percentuale) su Ubuntu Linux
Dividere un file di testo a metà (o qualsiasi percentuale) su Ubuntu Linux

Video: Dividere un file di testo a metà (o qualsiasi percentuale) su Ubuntu Linux

Video: Dividere un file di testo a metà (o qualsiasi percentuale) su Ubuntu Linux
Video: How To Install An ASP.NET Core In .NET 5 App On Ubuntu 20.04 - YouTube 2024, Maggio
Anonim

Se si dispone di un file di testo pesante che si sta tentando di elaborare, suddividerlo in sezioni può a volte aiutare i tempi di elaborazione, soprattutto se si intende importare un file in un foglio di calcolo. O potresti voler semplicemente recuperare un particolare insieme di linee da un file.

Inserisci split, wc, tail, cat e grep. (non dimenticare sed e awk). Linux contiene un ricco set di utility per lavorare con file di testo sulla riga di comando. Per il nostro compito oggi useremo split e wc.

Per prima cosa diamo un'occhiata al nostro file di registro ….

> ls -l -rw-r–r– 1 thegeek ggroup 42046520 2006-09-19 11:42 access.log

Vediamo che la dimensione del file è 42 MB. È abbastanza grande … ma quante linee abbiamo a che fare? Se volessimo importarlo in Excel, avremmo bisogno di tenerlo a meno di 65k linee.

Controlliamo la quantità di linee nel file usando l'utility wc, che sta per "word count".

> wc -l access.log 146330 access.log

Siamo oltre il nostro limite. Dovremo dividerlo in 3 segmenti. Useremo l'utility split per farlo.

> split -l 60000 access.log > ls -l

total 79124 -rw-rw-r– 1 thegeek ggroup 40465200 2006-09-19 12:00 access.log -rw-rw-r– 1 thegeek ggroup 16598163 2006-09-19 12:05 xaa -rw-rw-r– 1 thegeek ggroup 16596545 2006-09-19 12:05 xab -rw-rw-r– 1 thegeek ggroup 7270492 2006-09-19 12:05 xac

Ora abbiamo diviso i nostri file di testo in 3 file separati, ciascuno contenente meno di 60000 righe, che sembrava un buon numero da scegliere. L'ultimo file contiene l'importo rimanente. Se stavi per tagliare questo particolare file a metà, avresti fatto questo:

> split -l 73165 access.log

E questo è tutto quello che c'è da fare.

Consigliato: