pb d'écrasement de variable? avec un script awk

pb d'écrasement de variable? avec un script awk - Codes et scripts - Linux et OS Alternatifs

Marsh Posté le 17-05-2005 à 13:35:05    

Bonjour
 
J'ai un problème avec awk. Je souhaiterais à partir d'un txt récupérer les 2 premières colonnes de celui-ci.Pas de pb jusqu'ici, ça marche très bien, j'arrive à récupérer ces 2 chaines et les insérer ds 1 variable.Par contre, lorsque j'essaie de récupérer la 3ème colonne elle n'existe plus.
De même lorsque je récupère la 3ème valeur de ma ligne avant les 2 autres, celles ci n'existent plus
Voila mon code:
 
awk -F: '{
        print "ici:"$3
        $login=substr($2,1,1)$1
        $gro=$3
        print "login:"$login
        print $gro
        {
                if ($3=="c" ){
                        print "compta"
                }
                if ($3=="d" ){
                        print "direction"
                }
                if ($3=="a" ){
                        print "admin"
                }
                if ($3=="s" ){
                        print "samba"
                }
        }
}' /home/pollux/users.txt
 
J'ajoute qu'inverser les lignes :$login=substr($2,1,1)$1
            $gro=$3
permet seulement 'à l'affichage de login' d'écrire soit $3 soit rien du tout
 
Merci


---------------
De Marx j'ai avant tout retenu la notion de capital
Reply

Marsh Posté le 17-05-2005 à 13:35:05   

Reply

Marsh Posté le 17-05-2005 à 13:41:56    

Bonjour, cette ligne me paraît pas correcte

Code :
  1. $login=substr($2,1,1)$1


il faudrait pas mettre plutôt :

Code :
  1. login=substr($2,1,1)$1


sinon le champ numéro "login" sera égal à substr($2,1,1)$1
 
autre chose tu sembles ajouter à la manière de PHP/Perl un "$" à chacune de tes variables, sous awk les variables n'ont pas de "$" au début sinon cela indique qu'on accède aux champs de la ligne en cours d'analyse.


Message édité par jlighty le 17-05-2005 à 13:46:05
Reply

Marsh Posté le 17-05-2005 à 13:51:20    

Merci bien :jap:


---------------
De Marx j'ai avant tout retenu la notion de capital
Reply

Sujets relatifs:

Leave a Replay

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