join sous Linux avec des exemples
Comme son nom l’indique, nous utilisons la commande join sous Linux pour combiner les données des fichiers texte avec un champ commun. Cette commande peut être utile dans diverses situations d’administration système.
Par exemple, si vous archivez des informations personnelles réparties dans plusieurs fichiers, vous pouvez utiliser la commande join pour les fusionner. La commande join peut parfois devenir assez délicate en raison des restrictions qui l’accompagnent. Mais dans ce tutoriel, nous allons vous aider à les contourner et à tirer le meilleur parti de la commande join.
Dans ce tutoriel, vous allez apprendre à utiliser la commande join sous Linux à l’aide d’exemples. Suivez ci-dessous pour en savoir plus sur les différentes options que vous pouvez utiliser avec cette commande pour éviter ces erreurs d’exécution de commande si frustrantes.
Dans ce tutoriel, vous allez apprendre :
- Comment utiliser la commande join sous Linux
Options fréquemment utilisées
La commande join prend deux ou plusieurs documents texte associés et les « joint » dans un ou plusieurs champs communs, en prenant des données apparemment fragmentées et en les combinant en quelque chose de beaucoup plus significatif. Suivez certains de nos exemples ci-dessous pour voir comment cela fonctionne.
join dans Linux Exemples de base
L’exécution de la commande join seule, sans aucune option supplémentaire, fusionnera les fichiers texte spécifiés dans la ligne de commande avec un champ de jointure correspondant. Le champ utilisé par défaut par la commande join est la première ligne de chaque fichier texte. Dans notre exemple ci-dessous, nous allons utiliser deux fichiers texte contenant des aliments et leur type d’aliment. Nous les appellerons
file01etfile02.join file01 file02S’il manque une ligne à combiner à l’un des fichiers texte que vous fusionnez avec un autre à combiner à l’aide de la commande join sans options supplémentaires, la sortie affichera une erreur indiquant que le fichier n’est pas trié. Par conséquent, la jointure ne traitera pas cette ligne dans les deux fichiers. Si c’est un peu déroutant à visualiser, ce sera plus clair à partir de l’exemple de capture d’écran ci-dessous.
join file01 file02Comme vous pouvez le voir dans la capture d’écran ci-dessus, la sortie de join fusionne
file01etfile02mais n’affiche que les 3 lignes qui peuvent être mises en correspondance. En effet, comme indiqué dans le message d’erreur qui précède la sortie, le fichier texte avec la ligne manquante n’est pas trié.Maintenant que vous savez ce qui se passe lorsque vous utilisez la commande join pour combiner des fichiers contenant des lignes que cette commande ne peut pas correspondre, nous pouvons commencer à apprendre à utiliser l’option
-aet un numéro de fichier pour nous faire gagner du temps.join -a 1 file01 file02Si vous passez l’option
-aà la commande join pour fusionnerfile01etfile02sans spécifier le numéro de fichier que le message d’erreur de l’exemple précédent nous a indiqué comme n’étant pas trié vous donnera un message d’erreur. Cette erreur se produit parce que la jointure ne peut pas savoir à quel fichier vous faites référence avec l’option-asi vous ne l’incluez pas.join -a [file number] file01 file02En spécifiant le numéro de fichier pour la commande join, nous pouvons faire en sorte qu’elle imprime la ligne non correspondante dans
file01sans message d’erreur. Comme mentionné précédemment, cela permet de gagner beaucoup de temps, car nous n’avons pas besoin d’aller chercher nous-mêmes la ou les lignes non appariables.join -a 1 file01 file02
Comme vous pouvez le voir dans la capture d’écran ci-dessus, la sortie de la commande join a combiné chaque ligne de file01 et file02. Donc, nous avons maintenant la liste des aliments de file01 correspondant aux types d’aliments de file02. Mais parfois, les choses ne se passent pas toujours aussi bien, et nous aurons une ligne supplémentaire contenant, par exemple, un aliment supplémentaire qui ne possède pas son correspondant de type d’aliment à partir du fichier texte fusionné. Ne vous inquiétez pas, cependant. Parce que sous Linux, il y a toujours un moyen d’atténuer le choc. Nous aborderons cela dans l’exemple suivant.
Avec des fichiers texte plus volumineux, il peut être beaucoup plus difficile de discerner quelles lignes sont à l’origine de ce message d’erreur. Cela peut entraîner de nombreux maux de tête inutiles et des pertes de temps à essayer de comprendre. Nous allons vous montrer comment éviter cela dans l’exemple suivant.
Comme vous pouvez le voir dans la capture d’écran ci-dessus, la commande join, lorsqu’elle est utilisée en conjonction avec l’option -a et le numéro de fichier correct, la sortie imprime de toute façon la ligne contenant notre « ananas ». Le reste de la ligne est vide car le type d’aliment de notre « ananas » est laissé mystère car il n’est pas présent dans file02.
Vous pouvez toujours utiliser la commande man pour en savoir plus sur la commande join et sa documentation officielle. Cliquez sur le lien précédent pour voir comment ouvrir les pages de manuel pour n’importe quelle commande sur un système Linux.
Utilisation avancée
La commande join n’est pas très complexe, mais comme vous l’avez observé tout au long de la section des exemples de cet article, il existe quelques restrictions qui peuvent entraîner des blocages. Mais nous pouvons utiliser les options de ligne de commande pratiques disponibles pour la commande join. Découvrez ci-dessous quelques-unes des options les plus avancées de la commande.
join dans Linux Advanced Exemples
Comme mentionné, la commande join joint des lignes de fichiers texte sur un champ correspondant. Par défaut, ce champ est la première ligne de chaque fichier. Cependant, dans l’exemple ci-dessous, nous allons vous montrer comment personnaliser les lignes utilisées comme champ commun pour la commande de jointure.
join join -2 1 -1 2 file01 file02Si le champ commun est le même dans les deux fichiers, nous pouvons utiliser l’option
-jau lieu des options-1et-2.join j1 file01 file02
Avec cette option, comme vous pouvez le voir dans la capture d’écran ci-dessus, les options -1 et -2 pour la commande de jointure ont fusionné file01 et file02. En utilisant ces options, nous avons pu inclure les couleurs respectives de chaque aliment, bien qu’elles ne soient pas présentes dans les deux fichiers.
Réflexions finales
Dans ce tutoriel, nous avons tout appris sur la commande join sous Linux qui est bénéfique à maîtriser pour les utilisateurs généraux et les administrateurs système qui conservent fréquemment des données dans plusieurs fichiers texte.
Il est important de noter qu’il existe de nombreuses façons différentes d’obtenir les mêmes résultats sous Linux. La commande join ne fait pas exception à la règle. Il existe plusieurs façons de fusionner et de trier des fichiers texte à l’aide de commandes sous Linux ; La commande join n’est que l’une d’entre elles.







