accueil > Traitement et recherche de texte > join

join : fusionner des champs communs de deux fichiers

La commande join fusionne les lignes de deux fichiers texte triés en se basant sur des champs communs spécifiés et les exporte vers la sortie standard. Elle fonctionne de manière similaire à l'opération JOIN dans les bases de données, en combinant les lignes correspondantes de chaque fichier pour créer de nouvelles lignes.

Aperçu

join compare des champs spécifiques de deux fichiers et combine les lignes correspondantes. Cette commande ne fonctionne correctement que si les fichiers d'entrée sont triés selon le champ commun. L'utilisation sur des fichiers non triés peut entraîner des résultats inattendus.

Caractéristiques principales

  • Fusion basée sur les champs communs de deux fichiers
  • Tri des fichiers d'entrée obligatoire
  • Contrôle du format de sortie avec diverses options
  • Utile pour l'intégration de données et la génération de rapports

Options principales

La commande join permet un contrôle précis sur les critères de fusion, le format de sortie et la manière de traiter les lignes non correspondantes grâce à diverses options.

Spécification des champs et délimiteurs

Contrôle de la sortie

Commande générée :

Essayez de combiner les commandes.

Description:

`join` Exécute la commande.

Essayez d'exécuter virtuellement les commandes avec l'IA en combinant les options ci-dessus.

Exemples d'utilisation

Découvrez comment fusionner efficacement les données de deux fichiers grâce à divers exemples d'utilisation de la commande join.

Fusion de base

echo "1 apple\n2 banana" > file1.txt && echo "1 red\n2 yellow" > file2.txt && join file1.txt file2.txt

Fusionne les fichiers en se basant sur le premier champ des deux fichiers. (Exécuter après avoir créé les fichiers)

Fusion de champs spécifiques

echo "apple 1\nbanana 2" > file3.txt && echo "red 1\nyellow 2" > file4.txt && join -j 2 file3.txt file4.txt

Fusionne les fichiers en se basant sur le deuxième champ des deux fichiers. (Exécuter après avoir créé les fichiers)

Utilisation du délimiteur de tabulation

echo -e "id\tname\n1\tAlice\n2\tBob" > users.tsv && echo -e "id\tcity\n1\tSeoul\n3\tParis" > cities.tsv && join -t $'\t' users.tsv cities.tsv

Fusionne les fichiers délimités par des tabulations. (Exécuter après avoir créé les fichiers)

Inclure les lignes non correspondantes

echo "1 apple\n2 banana\n3 orange" > file5.txt && echo "1 red\n2 yellow" > file6.txt && join -a 1 file5.txt file6.txt

Inclut également les lignes présentes uniquement dans le premier fichier (file5.txt) dans la sortie. (Exécuter après avoir créé les fichiers)

Afficher uniquement des champs spécifiques

echo "1 apple\n2 banana" > file7.txt && echo "1 red\n2 yellow" > file8.txt && join -o 1.1,1.2,2.2 file7.txt file8.txt

Affiche uniquement le premier et le deuxième champ du premier fichier, ainsi que le deuxième champ du second fichier. (Exécuter après avoir créé les fichiers)

Conseils et précautions

Conseils utiles et points à considérer lors de l'utilisation de la commande join.

Conseils importants

  • **Tri des fichiers d'entrée** : La commande join ne fonctionne correctement que si les fichiers d'entrée sont triés selon le champ de jointure. Il est essentiel de les trier au préalable à l'aide de la commande `sort`. Exemple : `sort file1.txt > sorted_file1.txt`
  • **Délimiteur de champ** : Le délimiteur par défaut est l'espace (espace, tabulation). Pour utiliser un autre délimiteur, utilisez l'option `-t`. Par exemple, pour les fichiers CSV, utilisez `-t ','`.
  • **Contrôle du format de sortie** : L'option `-o` permet de contrôler précisément l'ordre et l'inclusion des champs à afficher dans la sortie. Spécifiez au format `NUMFICHIER.NUMCHAMP` (par exemple, `1.2` pour le deuxième champ du premier fichier).
  • **Traitement des lignes non correspondantes** : Vous pouvez utiliser les options `-a` ou `-v` pour inclure les lignes non correspondantes en plus des lignes correspondantes, ou pour afficher uniquement les lignes non correspondantes.

Commandes de la même catégorie