Bonjour à tous,
Voila j ai un petit problème avec un script qui utilise un awk
Voici un extrait de mon fichier d'entrer:
Donc un fichier bien formater avec comme séparateur une virgule
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 ptsas00,0002,Online,Normal,Normal,2107-900,FB512,P0,Standard,DS,15.0,-,31457280,V0,31457280,legacy oracle00,0003,Online,Normal,Normal,2107-900,FB512,P0,Standard,DS,60.0,-,125829120,V1,125829120,legacy testqual00,0004,Online,Normal,Normal,2107-900,FB512,P0,Standard,DS,12.0,-,25165824,V0,25165824,legacy exploit00,0005,Online,Normal,Normal,2107-900,FB512,P0,Standard,DS,24.0,-,50331648,V4,50331648,legacy
En gros jeu veux faire un script qui permette, en lui passant un ou plusieurs paramètres,
De retourner la deuxième colonne des lignes qui contiennent mon ou mes paramètres dans la 14ème colonne ^^
ex :Très simple n'est-ce pas ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part ./monscript V1 V2
De plus il ne faut pas que la première colonne commence par le mot "single"
Donc voila mon script :
Donc mon problème est qu'avec la condition écrit en dur tout fonctionne, quand j'utilisai la variable VOLID qui contient ma condition avec tous les paramètres «($14=="V9")||($14=="V3")||(1==0)»,
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 VOLID='(' for i in $@ do VOLID=$VOLID'($14=='\"$i\"')||' done VOLID=$VOLID'(1==0))' cat $FICHIER_IN | awk -vvolid=$VOLID -F ',' '( volid && ( $1 !~ /^single*/)) {print $2}'
La fonction awk me renvoi toutes les lignes du fichier sans tenir compte de mes paramètres ^^
J'espère que cela est assez claire
Cela fait plusieurs jours que je bloque dessus XD.
Si quelqu'un peu m'aider ce serait sympa.
Pour info, au final cela doit fonctionner sous AIX
Partager