Homepage » come » 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

    Se hai un file di testo pesante che stai tentando di elaborare, suddividerlo in sezioni può a volte aiutare i tempi di elaborazione, specialmente se dovessimo 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. È piuttosto 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

    totale 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 ciò che c'è da fare.