GNU/Linux >> Tutoriels Linux >  >> Linux

Recherche du contenu d'un fichier dans un autre fichier

grep lui-même est capable de le faire. Utilisez simplement le drapeau -f :

grep -f <patterns> <file>

<patterns> est un fichier contenant un motif dans chaque ligne ; et <file> est le fichier dans lequel vous souhaitez rechercher des éléments.

Notez que, pour forcer grep pour considérer chaque ligne comme un motif, même si le contenu de chaque ligne ressemble à une expression régulière, vous devez utiliser le drapeau -F, --fixed-strings .

grep -F -f <patterns> <file>

Si votre fichier est un CSV, comme vous l'avez dit, vous pouvez :

grep -f <(tr ',' '\n' < data.csv) <file>

A titre d'exemple, considérons le fichier "a.txt", avec les lignes suivantes :

alpha
0891234
beta

Maintenant, le fichier "b.txt", avec les lignes :

Alpha
0808080
0891234
bEtA

La sortie de la commande suivante est :

grep -f "a.txt" "b.txt"
0891234

Vous n'avez pas du tout besoin de for -boucle ici ; grep offre lui-même cette fonctionnalité.

Maintenant, en utilisant vos noms de fichiers :

#!/bin/bash
patterns="/home/nimish/contents.txt"
search="/home/nimish/another_file.csv"
grep -f <(tr ',' '\n' < "${patterns}") "${search}"

Vous pouvez modifier ',' au séparateur que vous avez dans votre fichier.


Autre solution :

  • utiliser awk et créez votre propre hash (par exemple ahash), tous contrôlés par vous-même.
  • remplacer $0 to $i et vous pouvez faire correspondre tous les champs que vous voulez.
awk -F"," '
{  
   if (nowfile==""){ nowfile = FILENAME;  }

   if(FILENAME == nowfile)
   {
     hash[$0]=$0;
   }
   else
   {
       if($0 ~ hash[$0])
       {  
           print $0
       }
   }
} '  xx yy

Linux
  1. Trouver le contenu de l'application OCP en mode bloc et fichier dans ODF :l'infrastructure

  2. Comment copier ou cloner des autorisations d'un fichier à un autre sous Linux

  3. Outil pour obtenir les lignes d'un fichier qui ne sont pas dans un autre ?

  4. Est-ce un Uuoc (utilisation inutile de chat) de rediriger un fichier vers un autre ?

  5. Comment obtenir la somme Md5 du contenu d'un répertoire en une seule somme ?

Trouver le contenu de l'application OCP en mode bloc et fichier dans ODF :création d'un projet de stockage de fichiers

Comment copier un fichier d'un autre répertoire vers celui en cours ?

Une doublure pour vérifier si le fichier existe ?

Shell - Écrire le contenu d'une variable dans un fichier

remplacer les lignes d'un fichier par les lignes d'un autre par numéro de ligne

Copier un fichier volumineux d'un serveur Linux à un autre