Shell et awk, ya un probleme???

nonyus -  
jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   -
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.

1 réponse

  1. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    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