[sh]Problème scripting

Fermé
jocelyn54 Messages postés 4 Date d'inscription vendredi 27 février 2009 Statut Membre Dernière intervention 6 mars 2009 - 27 févr. 2009 à 09:53
jocelyn54 Messages postés 4 Date d'inscription vendredi 27 février 2009 Statut Membre Dernière intervention 6 mars 2009 - 27 févr. 2009 à 11:47
Bonjour,
Je suis débutant et j'ai essayé de réaliser un script pour générer un fichier compatible pour une importation sur zabbix seulement il ne fait pas exactement ce que je souhaite.
Je vais commencer par vous le montrer (enfin ce qui est utile) puis je dirai les problèmes rencontrés:
#recuperation de l'agence
var1="agence_""$(echo $entree | cut -d';' -f10 |  sed 's/\"//g' | tr -s A-Z a-z)"
agence=`echo $var1 | sed 'y/àâçéèêëîïôöùüÂÀÇÉÈÊËÎÏÔÖÙÜ/aaceeeeiioouuaaceeeeiioouu/'`
#recuperation de la region
region="region_""$(echo $entree | cut -d';' -f11 |  sed 's/\"//g' | tr -s A-Z a-z)"

Bon, le script fonctionne et va récupérer les données comme il faut. Le but de cette partie est de supprimer la casse et l'accentuation après avoir récupéré l'info dans tel ou tel champ. Le problème est que quand le script récupère Rennes par exemple, il retournera agence_renes. Ainsi, les doublons "nn", "ll", etc. sont transformés en lettres simples. Je ne comprends pas pourquoi... Je suppose que c'est dans le tr qu'il y a une erreure mais je n'arrive pas à la trouver.

Ensuite, je souhaite ne faire une certaine opération que si la chaîne "reseau 3" se trouve dans le champ 33.
Je pensais faire quelquechose dans le genre mais cela ne fonctionne pas... Erreur de syntax. Pouvez vous m'aider?
grep -i "reseau 3" $(echo $entree | cut -d';' -f33 |  sed 's/\"//g')
if [ "$?" = "0" ]


Merci d'avance

3 réponses

jocelyn54 Messages postés 4 Date d'inscription vendredi 27 février 2009 Statut Membre Dernière intervention 6 mars 2009
27 févr. 2009 à 11:04
Bon, j'ai un peu craqué pour le coup des doubles lettres qui disparaissent... C'était à cause du -s.
Par contre, pourriez vous m'aider sur la syntax avec le grep que j'ai écrit plus haut?
0
dubcek Messages postés 18589 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 21 mars 2023 5 584
27 févr. 2009 à 11:15
hello
ne serait-ce pas plutôt

echo $entree | cut -d';' -f33 | sed 's/\"//g' | grep -iq "reseau 3"
if [ "$?" = "0" ]
0
jocelyn54 Messages postés 4 Date d'inscription vendredi 27 février 2009 Statut Membre Dernière intervention 6 mars 2009
27 févr. 2009 à 11:47
Ca fonctionne correctement. Merci beaucoup pour votre réponse.
0