Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

105
Views
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 answers
Answer question

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 Report

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!