GNU/Linux >> Tutoriales Linux >  >> Linux

Encontrar el contenido de un archivo en otro archivo

grep mismo es capaz de hacerlo. Simplemente use la bandera -f :

grep -f <patterns> <file>

<patterns> es un archivo que contiene un patrón en cada línea; y <file> es el archivo en el que desea buscar cosas.

Tenga en cuenta que, para forzar grep para considerar cada línea como un patrón, incluso si el contenido de cada línea parece una expresión regular, debe usar la bandera -F, --fixed-strings .

grep -F -f <patterns> <file>

Si tu archivo es un CSV, como dijiste, puedes hacer:

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

Como ejemplo, considere el archivo "a.txt", con las siguientes líneas:

alpha
0891234
beta

Ahora, el archivo "b.txt", con las líneas:

Alpha
0808080
0891234
bEtA

La salida del siguiente comando es:

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

No necesitas nada para for -bucle aquí; grep ofrece esta característica.

Ahora usando sus nombres de archivo:

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

Puede cambiar ',' al separador que tienes en tu archivo.


Otra solución:

  • usa awk y crea tu propio hash (por ejemplo, ahash), todo controlado por ti mismo.
  • reemplazar $0 to $i y puede hacer coincidir cualquier campo que desee.
awk -F"," '
{  
   if (nowfile==""){ nowfile = FILENAME;  }

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

Linux
  1. Búsqueda de contenidos de aplicaciones OCP de bloques y archivos en ODF:creación del proyecto

  2. ¿Cómo obtener la suma Md5 del contenido de un directorio como una sola suma?

  3. ¿Copiar las últimas líneas N de un archivo a otro?

  4. ¿Existe un delineador para verificar el archivo?

  5. Copie toda la jerarquía del sistema de archivos de una unidad a otra

Búsqueda de contenidos de aplicaciones OCP de bloques y archivos en ODF:Creación de un proyecto de almacenamiento de archivos

¿Cómo copiar un archivo de otro directorio al actual?

Cómo agregar contenidos de múltiples archivos en un archivo

¿Cómo encontrar palabras de un archivo en otro archivo?

reemplazar líneas en un archivo con líneas en otro por número de línea

Copie archivos grandes de un servidor Linux a otro