Shell et awk, ya un probleme???

Fermé
nonyus - 4 juin 2005 à 11:33
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 - 4 juin 2005 à 16:02
Bonjour à tous,

VOila j'ai un probleme,

Je veut tester si un fichier est bien de la forme "*@*@*" etsi il ne les pas afficher une message d'erreur et qui j'ai reussi le premier mais pas a quitter :
testfic=`awk -F "@" 'BEGIN{bon=1;} $0 ~ /*@*@*/ {bon=0;} END{if (bon==0) {print "Fichier non conforme";} }' $2 `
echo $testfic


Mon deuxieme probleme C'est de lire une entree au clavier de la comparer à chaque 1iere colonne de chaque ligne d'un fichier et si sa correspond a l'entree du clavier il faut executer la commande shell qui est a la troisieme colonne de la meme ligne.
execcmd=`awk -F "@" BEGIN'{"read" | getline choix;} $1==choix {"$3";}' $2`
echo $execcmd

Cette commande ne marche pas, et je n'est pas d'autre idée

Merci d'avances pour toutes vos reponses.
A voir également:

1 réponse

jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 897
4 juin 2005 à 16:02
Salut,

Pour le 1er problème, teste avec ça :
echo "majux@un" | awk -F "@" '  $0 !~ /^[a-z][a-z]*@[a-z][a-z]*@[a-z][a-z]*/  { print "Fichier non conforme" }'
Fais varier les caractères dans "echo" pour tester.

========================================

Pour le second en partant des fichiers suivants :
(fichier source : fich)

[jp@Mandrake tmpfs]$ cat fich
premier@choix@ls
second@choix@df -h
troisième@choix@ls -l
quatrième@choix@ls -a
choix@premier@df

(fichier script : essai)

[jp@Mandrake tmpfs]$ cat essai
#!/bin/bash

echo "Entrer au clavier un des termes suivants :"
echo
echo -e "\tpremier"
echo -e "\tsecond"
echo -e "\ttroisième"
echo -e "\tquatrième"
echo
read choix

var=`grep ^"$choix" fich | awk -F "@" '{ print $3 }'`
echo $var
$var
exit
[jp@Mandrake tmpfs]$

Ce qui donne :
[jp@Mandrake tmpfs]$ ./essai
Entrer au clavier un des termes suivants :

        premier
        second
        troisième
        quatrième

troisième
ls -l
total 16
-rwxr-xr-x  1 jp jp 237 jun  4 15:52 essai
-rwxr-xr-x  1 jp jp 239 jun  4 15:50 essai~
-rw-r--r--  1 jp jp  98 jun  4 15:50 fich
-rw-r--r--  1 jp jp  91 jun  4 14:32 fich~
-rw-r--r--  1 jp jp   0 jun  4 14:38 fich1
-rw-r--r--  1 jp jp   0 jun  4 14:38 fich2
-rw-r--r--  1 jp jp   0 jun  4 14:38 fich3
[jp@Mandrake tmpfs]$
;-))
0