passer des paramettres à AWK

passer des paramettres à AWK - Shell/Batch - Programmation

Marsh Posté le 02-08-2005 à 16:46:36    

fichier1:  

Citation :


 1  toto1  adresse1
 2  toto2  adresse2
 3  toto3  adresse2  


fichier2:

Citation :


toto1
toto3  


resultats :

Citation :


 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 :  

Code :
  1. #! /bin/sh
  2. for i in `cat fichier2`
  3. do
  4.    awk '$2 ~ /system("`$i`" )/ { print $0 }' fichier2
  5. done


ça marche pas !!
Merci

Reply

Marsh Posté le 02-08-2005 à 16:46:36   

Reply

Marsh Posté le 02-08-2005 à 16:52:38    

grep $i fichier1  
ne te convient pas ?

Reply

Marsh Posté le 02-08-2005 à 17:09:33    

avec grep en risque de selectionné les lignes qui correspond pas au critères :
fichier1:

Citation :


 1  toto1  adresse1
 2  toto2  adresse2
 3  toto4  toto3  


fichier2:  

Citation :


toto1
toto3  


resultat (avec grep)

Citation :


 1  toto1  adresse1
 3  toto4  toto3      // <--- ne doit pas être dans le resultat !


 

Reply

Marsh Posté le 02-08-2005 à 17:15:17    

eh ben  
grep  "[^ ]* $i" fichier1 ?

Reply

Marsh Posté le 02-08-2005 à 18:14:47    

Pour passer des paramêtres a AWK il faut utiliser "-v". Cependant toutes les versions de AWK ne supportent pas cette option ...
 
 


for value in `cat fichier2`
do
   awk -v Field=$value '$2 ~ Field { print $0 }' fichier1
done


---------------
Institutions européennes: Ensemble d'outils dont le but est de transformer une grande quantité d'argent en merde. Cette merde est utilisée pour créer de nouveaux fonctionnaires. L'argent restant payant des externes pour faire leur travail.
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed