Un problème avec les expressions régulières

Résolu/Fermé
fresty Messages postés 9 Date d'inscription lundi 19 août 2013 Statut Membre Dernière intervention 21 août 2013 - 19 août 2013 à 13:41
fresty Messages postés 9 Date d'inscription lundi 19 août 2013 Statut Membre Dernière intervention 21 août 2013 - 20 août 2013 à 11:38
Bonjour,

Je suis dans l'administration système et je gère un certain nombre de fihiers notamment des fichiers avec le nom Iacc concatener avec le nième jour en cours de l'année. C'est à dire, comme today c'est le 231e jour, j'aurai: "Iacc231".
Et j'aimerais contrôler dans un fichier log que ce fichier est entrain d'être traité.

Quand je tape la commande en une seule ligne comme ceci:

a='date '+Iacc%j''; grep $a monfichier.log > file.txt; uuencode file.txt file.txt | mailx frestymautu@yahoo.fr;

ça marche. Donc je check si le fichier monfichier.log contient les infos des fichiers Iacc231, je le redirige vers le fichier file.txt, puis je l'envoi par mail sous forme de pièce jointe.

Mais comme je souhaite automatiser le script, j'ai fait ceci:

#!/bin/bash

a = 'date '+Iacc%j''
grep $a monfichier.log > file.txt
uuencode file.txt file.txt | mailx frestymautu@yahoo.fr

ça me renvoi une erreur a la ligne de GREP.
Aidez-moi svp!!!

2 réponses

zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 407
19 août 2013 à 13:46
Salut,

ça me renvoi une erreur a la ligne de GREP.
Quelle erreur ??? A avoir un message d'erreur autant le poster, c'est quand même plus explicite ;-\

Sinon :
a = 'date '+Iacc%j'' 

Les espaces sont en trop autour du signe égale ;-((

Puis privilégier la notation $(commande blabla) plutôt que l'emploi des quotes inversées, qui en plus ne sont pas prises en compte par le codage de CCM ;-(


PS. Tant qu'il est encore temps, modifie (ou supprime) ton adresse mail dans ton message ;-\
0
fresty Messages postés 9 Date d'inscription lundi 19 août 2013 Statut Membre Dernière intervention 21 août 2013
19 août 2013 à 13:57
#!/bin/bash

a = 'date '+Iacc%j''
grep $a monfichier.log > file.txt
uuencode file.txt file.txt | mailx freestyle@mondomaine.cd

L'erreur affichée est:

./monscript.sh : bad substitution
0
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 407
Modifié par zipe31 le 19/08/2013 à 13:59
Ben je te l'ai dit : il ne faut pas d'espace autour du signe égale ;-(

a=$(date '+Iacc%j')
0
fresty Messages postés 9 Date d'inscription lundi 19 août 2013 Statut Membre Dernière intervention 21 août 2013
19 août 2013 à 14:04
Je l'ai fait mais voici une autre erreur:

syntax error at line 5: 'a=$' unexpected.

Pour plus de précision j'utilise SOLARIS...
0
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 407
19 août 2013 à 14:05
Pour plus de précision j'utilise SOLARIS...
Effectivement ;-((

Ben remet l'autre syntaxe mais toujours sans espaces autour du signe égale, hein ? ;-)
0
fresty Messages postés 9 Date d'inscription lundi 19 août 2013 Statut Membre Dernière intervention 21 août 2013
19 août 2013 à 14:08
Donc il signale une erreur à la ligne :

a=$(date '+Iacc%j')
0
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 407
19 août 2013 à 14:13
Je t'ai dit de remettre la syntaxe avec les quotes inversées :
0