#howto - Utilizzo del comando join

Scritto da il
Redatto da

Il comando join permette di unire più file di testo in base ad un campo comune, mostrandone il risultato come output.

## Sintassi Vediamo di seguito la sua semplice sintassi:

join file_1 file_2

basterà infatti aggiungere a seguito del comando, i file che vogliamo unire.

Utilizzo del comando

Mettiamo caso di avere due file di testo, prova-1.txt e prova-2.txt, con all’interno delle mail in dei campi ordinati (1, 2, 3 e 4):

In questi file le informazioni all’interno sono posizionate in modo ordinato, quindi per poterle unire ci basterà digitare:

join prova-1.txt prova-2.txt

Una volta fatto ciò, l’output sarà il seguente:

## Campi non ordinati

Mettiamo caso di avere un terzo file: prova-3.txt:

In questo caso le informazioni dentro il file sono messe in modo non ordinato, e in caso provassimo ad eseguire join prova-1.txt prova-3.txt ci darà il seguente errore:

1 [email protected]
2 [email protected]
join: prova-3.txt: is not sorted: [email protected]

Per sistemare questo problema è necessario inserire in ordine le informazioni.

## File con linee mancanti

Nel file prova-4.txt è stata rimossa la seconda linea:

Una volta che proviamo ad unire i due file, join non darà errori di alcun tipo, e continuerà ad elaborare il resto delle linee.

Se si vogliono stampare delle linee dal prova-1.txt che non possono essere abbinate ci basterà aggiungere l’opzione -a:

join -a 1 prova-1.txt prova-4.txt
1 [email protected]
2 [email protected]
3 [email protected]

## Utilizzo di diversi separatori di campo

In caso in cui le informazioni dei file sono delimitate da una virgola o da qualsiasi altro tipo di punteggiatura, possiamo usare l’opzione -t seguito dal carattere separatore per far capire al comando join cosa utilizzare come separatore di campo:

join -t, prova-1.txt prova-2.txt
1,[email protected],Prova
2,[email protected],Prova
3,[email protected],Prova
4,[email protected],Prova

## Ignorare le maiuscole

Per far sì che il comando join ignori le maiuscole presenti nel documento, possiamo utilizzare l’opzione -i come mostrato nel comando qui sotto:

join -1 1 -2 2 -i prova-1.txt prova-2.txt

Per maggiori informazioni, dubbi e chiarimenti, non esitate a fare domande sul nostro gruppo Telegram.

history_edu Revisioni