Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

106
Vistas
Uso del archivo 1 como índice para buscar el archivo 2 cuando el archivo 1 contiene información adicional

como puede leer en el título, estoy tratando con dos archivos. Ella es el ejemplo de cómo se ven.

archivo1:

Nombre (información adicional separada por una pestaña del nombre)

 Peter Schwarzer<tab>Best friend of mine

archivo2:

Nombre (seguido de un flotante separado por una tabulación del nombre)

 Peter Schwarzer<tab>1456

Entonces, lo que quiero hacer es usar el archivo 1 uno como índice para buscar el archivo 2. Si los nombres coinciden, debe escribirse en el archivo 3, que debe contener el nombre seguido del flotante del archivo 2 seguido de la información adicional del archivo 1. Entonces file3 debería verse así:

 Peter Schwarzer<tab>1456<tab>Best friend of mine

(todo separado por tabulación)

Probé grep -f para leer un patrón de un archivo y sin la información adicional funciona. Entonces, ¿hay alguna forma de obtener el resultado deseado con grep o AWK es la respuesta?

Gracias de antemano, Julián.

over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

prueba esta línea, no probé, pero debería ir:

 awk -F'\t' -v OFS="\t" 'NR==FNR{n[$1]=$2;next}$1 in n{print $0,n[$1]}' file1 file2 > file3
over 4 years ago · Santiago Trujillo Denunciar

0

¡Prueba este awk one liner!

 awk -v FS="\t" -v OFS="\t" 'FNR==NR{ A[$1]=$2; next}$1 in A{print $0,A[$1];}' file1.txt file2.txt > file3.txt
over 4 years ago · Santiago Trujillo Denunciar

0

Para mí, esto parece un trabajo para join :

 join -t '\t' file1 file2

Esto supone que file1 y file2 están ordenados. Si no, ordénalos primero:

 sort -o file1 file1 sort -o file2 file2 join -t '\t' file1 file2

Si no puede modificar el file1 y el archivo file2 (si necesita dejarlos en su estado original sin ordenar), use un archivo temporal:

 tmpfile=/tmp/tf$$ sort file1 > $tmpfile sort file2 | join -t '\t' $tmpfile -

Si join dice "especificación de carácter de tabulación ilegal", tendrá que usar join -t ' ' donde escribe una pestaña real entre comillas simples (y dependiendo de su shell, es posible que tenga que usar control-V antes de esa pestaña).

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda