1 toto1 adresse1
2 toto2 adresse2
3 toto3 adresse2
fichier2:
toto1
toto3
resultats :
1 toto1 adresse1
3 toto3 adresse2
c.a.d avoir les lignes de fichier1 dont le 2 eme champ correspond au 1er champ du fichier2
voilà ou je suis :
#! /bin/sh
for i in `cat fichier2`
do
awk '$2 ~ /system("`$i`")/ { print $0 }' fichier2
done
ça marche pas !!
Merci
# et grep ?
Posté par gaaaaaAab . Évalué à 2.
[^] # Re: et grep ?
Posté par Nicolas Schoonbroodt . Évalué à 2.
(adresse2 = à_gauche_de_la_maison_de_toto1 par exemple)
[^] # Re: et grep ?
Posté par liberforce (site web personnel) . Évalué à 2.
Mais si son champ de recherche peut ne pas être unique, grep ne lui sera pas très utile dans ce cas...
[^] # Re: et grep ?
Posté par gaaaaaAab . Évalué à 2.
# pour awk
Posté par gaaaaaAab . Évalué à 2.
Sinon, tu as un problème sur le system("`$i`"). $i n'est pas défini pour awk. Vu que awk est un nouveau process, il n'hérite pas de la variable $i. Pour que awk connaisse $i, il faut que tu rajoutes "export i" dans ta boucle.
Je ne sais pas si ça suffit (pas testé), mais ça ne peut que améliorer les choses :)
[^] # Re: pour awk
Posté par durandal . Évalué à 2.
awk '$2 ~ /system("'$i'")/ { print $0 }' fichier2
Mais en fait je ne vois pas à quoi sert system, il suffirait de faire :
awk '$2 ~ /'$i'/ { print $0 }' fichier2
# Guillemets doubles
Posté par Damien Metzler . Évalué à 2.
for i in `cat fic2`;do
awk " \$2 ~ /$i/ { print \$0 }" fic1
done
# ca marche ??
Posté par skeespin (site web personnel) . Évalué à 2.
[^] # Re: ca marche ??
Posté par totof2000 . Évalué à 2.
# Pourquoi pas join ?
Posté par netsurfeur . Évalué à 2.
join -1 2 -2 1 fichier1 fichier2 | cut -f1,3 -d" "
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.