Shell to awk
Résolu/Fermé
titexe
Messages postés
55
Date d'inscription
lundi 27 novembre 2006
Statut
Membre
Dernière intervention
16 août 2010
-
4 avril 2007 à 13:18
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 - 6 avril 2007 à 13:57
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 - 6 avril 2007 à 13:57
A voir également:
- Shell to awk
- Qwerty to azerty - Guide
- Classic shell windows 11 - Télécharger - Personnalisation
- Press del to enter setup ✓ - Forum Windows
- Video to video - Télécharger - Conversion & Codecs
- Shell pause ✓ - Forum Shell
6 réponses
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
5 avril 2007 à 17:53
5 avril 2007 à 17:53
Entendons-nous bien...
Les "$1, $2, $3" correspondent à quoi ? Des variables, des paramètres positionnels ou des champs ?
Ils sont issus d'un "shell "ou de "awk" lui-même ?
Les "$1, $2, $3" correspondent à quoi ? Des variables, des paramètres positionnels ou des champs ?
Ils sont issus d'un "shell "ou de "awk" lui-même ?
titexe
Messages postés
55
Date d'inscription
lundi 27 novembre 2006
Statut
Membre
Dernière intervention
16 août 2010
1
4 avril 2007 à 17:34
4 avril 2007 à 17:34
Merci de m'aider a résoudre ce probléme , c est trés critique !!!
Merci d'avance
Merci d'avance
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
5 avril 2007 à 14:29
5 avril 2007 à 14:29
Salut,
awk '/motif/ { print $0 }' fichierCe qui donne pour ton 1er exemple :
awk '/\"\$answerq\"_\"\$answercode\":\"\$answeruser\"/ { print $0 }' fichier;-))
titexe
Messages postés
55
Date d'inscription
lundi 27 novembre 2006
Statut
Membre
Dernière intervention
16 août 2010
1
5 avril 2007 à 15:21
5 avril 2007 à 15:21
bonjour,
Merci pour votre réponse,
est ce que je peux insérer cette commande au sein de mon script.awk , parceque j'ai déja ce script , je veux juste insérer cette partie :
je l'ai déja fait , mais il m'affiche un message d'erreur :
if ($1 == "OB")
{
awk '/\"\$1\"_\"\$2\":\"\$3\"/ { print $0 }' /users2/test/" $7 ".cfg
if ($0 == "0")
{
system("echo " $1 "_" $2 ":" $3 " >> /users2/pfe/Gateway_DR/user_cfg/" $7 ".cfg ")
}
else
{
print " existant "
}
}
ce script.awk je le lance de cette maniére :
awk -f /users2/test/script.awk /users2/test/vfd.cfg
Merci d'avance et merci pour votre réactivité ,
Cdlt,
Abdel
Merci pour votre réponse,
est ce que je peux insérer cette commande au sein de mon script.awk , parceque j'ai déja ce script , je veux juste insérer cette partie :
je l'ai déja fait , mais il m'affiche un message d'erreur :
if ($1 == "OB")
{
awk '/\"\$1\"_\"\$2\":\"\$3\"/ { print $0 }' /users2/test/" $7 ".cfg
if ($0 == "0")
{
system("echo " $1 "_" $2 ":" $3 " >> /users2/pfe/Gateway_DR/user_cfg/" $7 ".cfg ")
}
else
{
print " existant "
}
}
ce script.awk je le lance de cette maniére :
awk -f /users2/test/script.awk /users2/test/vfd.cfg
Merci d'avance et merci pour votre réactivité ,
Cdlt,
Abdel
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
5 avril 2007 à 15:42
5 avril 2007 à 15:42
Re-
Ton problème là c'est le fait d'utiliser des variables (ou paramètres) externes (shell) à awk. Dans ce cas, il faut utiliser la syntaxe suivante :
Ton problème là c'est le fait d'utiliser des variables (ou paramètres) externes (shell) à awk. Dans ce cas, il faut utiliser la syntaxe suivante :
awk '/\"\'$1'\"_\"\'$2'\":\"\'$3'\"/ { print $0 }'Il faut en fait exclure la(es) variable(s) de la commande awk. La commande awk étant délimitée par des quotes, il suffit de refermer cette commande avant la variable et de la rouvrir derrière.
titexe
Messages postés
55
Date d'inscription
lundi 27 novembre 2006
Statut
Membre
Dernière intervention
16 août 2010
1
5 avril 2007 à 17:46
5 avril 2007 à 17:46
j'ai apporté les modifications que vous m'avez demandé, mais malgré ca , il m'affiche des messages d'erreurs en éxcecutant le script :
/users2/test > sh VFD1.sh
syntax error The source line is 76.
The error context is
awk >>> ' <<< /\"\'$1'\"_\"\'$2'\":\"\'$3'\"/ { print $0 }' /users2/test/" $7 ".cfg
awk: The statement cannot be correctly parsed.
The source line is 76.
syntax error The source line is 80.
le contenu du VFD1.sh :
awk -f /users2/pfe/vfd1.awk /users2/pfe/vfd.cfg
je pense la probléme est du au fait que j 'ai inséré une commande awk dans un script awk !!!
Merci encore une fois,
Cdlt,
Abdel
/users2/test > sh VFD1.sh
syntax error The source line is 76.
The error context is
awk >>> ' <<< /\"\'$1'\"_\"\'$2'\":\"\'$3'\"/ { print $0 }' /users2/test/" $7 ".cfg
awk: The statement cannot be correctly parsed.
The source line is 76.
syntax error The source line is 80.
le contenu du VFD1.sh :
awk -f /users2/pfe/vfd1.awk /users2/pfe/vfd.cfg
je pense la probléme est du au fait que j 'ai inséré une commande awk dans un script awk !!!
Merci encore une fois,
Cdlt,
Abdel
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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
5 avril 2007 à 18:29
5 avril 2007 à 18:29
Tu peux poster un bout de ton fichier où tu dois récupérer les champs et me dire exactement ce que tu veux, parce que là j'ai l'impression qu'on pédale dans la choucroute entre shell, awk et je sais plus quoi encore ;-))
Merci.
Merci.
titexe
Messages postés
55
Date d'inscription
lundi 27 novembre 2006
Statut
Membre
Dernière intervention
16 août 2010
1
5 avril 2007 à 18:50
5 avril 2007 à 18:50
j'exécute le premier script shell VFD1.sh,
le soucis que j'avais , c'est que a l'interrieur du script awk , y'a la commande echo qui insére une ligne dans un fichier,
ce que je voudrais faire , c'est de controler est ce que cette ligne existe déja dans ce fichier sioui ne rien faire , sinon je rajoute cette ligne !!
le lien pour le script VFD1.sh ( https://www.cjoint.com/?efsTUnCEzN )
le lien pour le script vfd.cfg ( https://www.cjoint.com/?efsUTLmmJV )
le lien pour le script vfd1.awk ( https://www.cjoint.com/?efsVANiEkg )
Voila j'espere que mon probléme est bien eclairci maintenant,
je compte beaucoup sur votre aide,
Cdlt,
Abdel
le soucis que j'avais , c'est que a l'interrieur du script awk , y'a la commande echo qui insére une ligne dans un fichier,
ce que je voudrais faire , c'est de controler est ce que cette ligne existe déja dans ce fichier sioui ne rien faire , sinon je rajoute cette ligne !!
le lien pour le script VFD1.sh ( https://www.cjoint.com/?efsTUnCEzN )
le lien pour le script vfd.cfg ( https://www.cjoint.com/?efsUTLmmJV )
le lien pour le script vfd1.awk ( https://www.cjoint.com/?efsVANiEkg )
Voila j'espere que mon probléme est bien eclairci maintenant,
je compte beaucoup sur votre aide,
Cdlt,
Abdel
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
5 avril 2007 à 20:28
5 avril 2007 à 20:28
Ok merci.
Mais avec tout ça j'ai encore des incertitudes !!!
1- Le fichier "vfd.cfg" c'est tout ce qu'il contient ? 1 ligne et 7 champs ?
2- Les paramètres "$1-$2-$3" de la fameuse ligne "awk '/\"\'$1'\"_\"\'$2'\":\"\'$3'\"/ { print $0 }' etc..." c'est les mêmes que dans le reste du script, comme "if ($1 == "OR")" ???
3- Où ils représentent les champs du fichier "user_cfg" ? (il me faufrait le fichier aussi, ou su moins quelques lignes pour voir à quoi ça ressemble)
Parce que dans ce cas là, la syntaxe serait plutôt du genre :
Mais avec tout ça j'ai encore des incertitudes !!!
1- Le fichier "vfd.cfg" c'est tout ce qu'il contient ? 1 ligne et 7 champs ?
2- Les paramètres "$1-$2-$3" de la fameuse ligne "awk '/\"\'$1'\"_\"\'$2'\":\"\'$3'\"/ { print $0 }' etc..." c'est les mêmes que dans le reste du script, comme "if ($1 == "OR")" ???
3- Où ils représentent les champs du fichier "user_cfg" ? (il me faufrait le fichier aussi, ou su moins quelques lignes pour voir à quoi ça ressemble)
Parce que dans ce cas là, la syntaxe serait plutôt du genre :
awk -F"_" '$1 == "foo" && $2 == "bar" && $3 == "foobar" { print $0 }'A adapter bien sur ;-))
titexe
Messages postés
55
Date d'inscription
lundi 27 novembre 2006
Statut
Membre
Dernière intervention
16 août 2010
1
6 avril 2007 à 11:42
6 avril 2007 à 11:42
Bonjour,
merci pour ton implication dans mon probléme , et merci pour votre réactivité,
1- le fichier vfd.cfg il contient 1 seule ligne avec 7 champs et il peut y'aller jusqu'a 14 champs,
2- les paramétres $1 , $2, $3 sont les memes paramétres partout dans le script,
3- voila le lien d'un des fichiers qui sont dans le répertoire user_cfg, ( https://www.cjoint.com/?eglQdupdXr )
Merci encore une fois,
Cdlt,
Abdel ;-)
merci pour ton implication dans mon probléme , et merci pour votre réactivité,
1- le fichier vfd.cfg il contient 1 seule ligne avec 7 champs et il peut y'aller jusqu'a 14 champs,
2- les paramétres $1 , $2, $3 sont les memes paramétres partout dans le script,
3- voila le lien d'un des fichiers qui sont dans le répertoire user_cfg, ( https://www.cjoint.com/?eglQdupdXr )
Merci encore une fois,
Cdlt,
Abdel ;-)
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
>
titexe
Messages postés
55
Date d'inscription
lundi 27 novembre 2006
Statut
Membre
Dernière intervention
16 août 2010
6 avril 2007 à 13:57
6 avril 2007 à 13:57
Re-
Bon ben je suis désolé, mais j'ai beau trituré le problème dans tous les sens, je n'arrive pas à incorporer cette simulation de "grep" dans ton fichier "awk" ;-(
Sorry...
Bon ben je suis désolé, mais j'ai beau trituré le problème dans tous les sens, je n'arrive pas à incorporer cette simulation de "grep" dans ton fichier "awk" ;-(
Sorry...
5 avril 2007 à 17:57
awk -f /users2/test/script.awk /users2/test/vfd.cfg