Votre navigateur est obsolète. Téléchargez un navigateur moderne, par exemple FireFox.
Léa-Linux : Forum
Le forum de Léa abrite des discussions autour des Logiciels libres.
Syndication
  • RSS ForumForum complet
  • RSS Forum - DéveloppementForum - Développement
  • RSS Forum - Développement - 335105Cette discussion

Pour poser vos questions sur les scripts shell, le Perl, le C, etc... Attention : nous ne sommes pas des spécialistes du dev, ce forum est juste pour de petites aides ponctuelles concernant le développement et les outils de développement.

Important : quand vous posez une question, n'oubliez pas de nous donner les indications suffisantes pour que nous puissions répondre. En effet, la divination n'est pas le fort du Linuxien averti. Pour une meilleure compréhension, le bon usage de la grammaire et de l'orthographe est fortement encouragé. En particulier, le langage SMS est à éviter absolument. En cas d'abus, il pourra être censuré sans autre forme de procès.
Les messages dont le contenu est illégal (incitant à la haine - raciale ou autre, diffamant), ou dont le contenu est sans rapport avec le sujet du forum, ou qui sont parfaitement stupides ou hors sujet seront supprimés sans pitié. Il pourra même être fait appel au fournisseur d'accès du coupable pour faire cesser ses agissements.
» Index du forum » Développement » Utilisation d'une variable dans une regex de awk
Aller à la discussion: PrécédentSuivante
Action: Nouveau sujetChercherS'authentifier
Utilisation d'une variable dans une regex de awk
Auteur: Stéphane Ascoët (IP enregistrée)
Date: le 6 mars 2008 à 18:03

Je cherche désespérément comment intégrer un mot passé en variable dans une regex de awk. J'ai bien ecrit -v champrecheche="$2" dans la commande awk, mais ensuite, comment l'insérer dans la regex pour l'utiliser? image : question

Re: Utilisation d'une variable dans une regex de awk
Avatar
Auteur: oudoubah (IP enregistrée)
Date: le 6 mars 2008 à 18:50

Tu appelles awk dans un script ou directement?

Dans le cas d'un script, il y a une solution de contournement.

Sinon tu peux le faire de telle manière
{ if ( $0 ~ champrecherche ) {
...
}
}


Tu as lu les docs. Tu es devenu un informaticien. Que tu le veuilles
ou non. Lire la doc, c'est le Premier et Unique Commandement de
l'informaticien.
-+- TP in: Guide du Linuxien pervers - "L'évangile selon St Thomas"

Re: Utilisation d'une variable dans une regex de awk
Auteur: Stéphane Ascoët (IP enregistrée)
Date: le 7 mars 2008 à 11:39

C'est dans un script, le paramètre vient de la ligne de commandes au départ image : chef
Je vais essayer ce que tu m'as donné image : hautdeforme .

Re: Utilisation d'une variable dans une regex de awk
Auteur: bheadman (IP enregistrée)
Date: le 26 mars 2008 à 18:49

Est-ce-que tu as résolut ton problème ?? car j'essaie de me former au bash et j'utilise énormément awk (nawk aussi car je suis sous sun solaris) et donc je lit un peu tout ce qui traine.

sinon voici un exemple (si j'ai bien compris)

#!/bin/bash

read -p "Quel est le mot de passe : " passwd

awk -v var=${passwd} '{ print "Le mot de passe est "var }'


Re: Utilisation d'une variable dans une regex de awk
Auteur: bheadman (IP enregistrée)
Date: le 26 mars 2008 à 19:00

correction :

#!/bin/bash

read -p "Quel est le mot de passe : " passwd

echo "Le mot de passe est " | awk -v var=${passwd} '{ print $0var }'

Re: Utilisation d'une variable dans une regex de awk
Auteur: bheadman (IP enregistrée)
Date: le 26 mars 2008 à 19:02

voici ce que cela pourrais donnée dans un shell (tu peut rentrer directement la ligne de commande sans le "$" au début cela devrait fonctionner)

$ popo=paswd; echo "le machin est " | awk -v var=$popo '{ print $0var }'
le machin est paswd

Re: Utilisation d'une variable dans une regex de awk
Auteur: Stéphane Ascoët (IP enregistrée)
Date: le 27 mars 2008 à 11:12

Ce n'est pas afficher la variable qui me posait problème, mais l'insérer dans la regex image : censuré

Re: Utilisation d'une variable dans une regex de awk
Auteur: bheadman (IP enregistrée)
Date: le 31 mars 2008 à 14:00

Stéphane Ascoët a écrit :

Ce n'est pas afficher la variable qui me posait
problème, mais l'insérer dans la regex



Cela je l'ai bien compris, mais mon exemple ne pouvais pas être abstrait il fallait le mettre en oeuvre et la façon la plus simple est le ECHO.

Re: Utilisation d'une variable dans une regex de awk
Auteur: bheadman (IP enregistrée)
Date: le 31 mars 2008 à 14:11

sinon je te donne un exemple concret :

for Part in $Partsrc
do
grep INBOX ${DataListDir}/mboxutil_$Stsrc.txt |grep partition$Part |awk '{print $2, $NF}' |sort -rn | nawk -v x=$Giga 'somme<x*1048576 {somme+=$1;print $2}' |sed 's/user\///' | sed 's/\/INBOX//' | nawk -v y=$Partdst '$1!~/@/{$1=$1"@neuf.fr"}; {print $1"#"y}' >> ${DeplacementDir}/Liste_$Partscript"_"$Partdst.script
done

voilou

Re: Utilisation d'une variable dans une regex de awk
Auteur: Stéphane Ascoët (IP enregistrée)
Date: le 31 mars 2008 à 14:24

Oulà, c'est bien compliqué ton truc image : hautdeforme Mais ne t'inquiètes pas, de toute façon ce script est fini et utilisé en production depuis longtemps image : petard



Nom du forum : (antispam) - (en développement:saisir un texte pour le message, rempli cette zone automatiquement)
Votre nom: 
Votre email: 
Sujet: 

 
Ce forum est boosté par Phorum.