Problème script et commande awk
sajodia
Messages postés
45
Statut
Membre
-
jipicy Messages postés 40842 Date d'inscription Statut Modérateur Dernière intervention -
jipicy Messages postés 40842 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour,
dans le répertoire mami/tot/jpg j'ai 6 fichiers(A,B,c,d,e,f) et dans le fichier d
voila ce que j'ai par exemple ce genre de lignes plusieurs fois:
02C8020060901148977I081020000
02C80200609061660002700070603
02C80200609083520002822080610
02C80200609100531003171010279
je veux recupérer dans 2variables var1 et var2 (les elements à parir du 6ème element au 13 element) qui signifie année ,le mois et le jour.
sachant que var1 est egaleà la plus petite date(date avant) ,et var2 la plus grande date :
var1=20060901
var2=20060910
minute=`date +%M`
heure=`date +%H`
jour=`date +%d`
mois=`date +%B`
an=`date +%Y`
mois_chiffre=`date +%m`
VAR="CUBE_`date +%B`"
#export an mois jour heure minute
interface="PH7"
if [ ! -e mami/tot/jpg ] [! -e fichier d]
then
var1=`vi fichier d | tail -1 | head -1 | awk '{ print $6, $7, $8,...,$13}' `
var2=`vi fichier d | tail -1 | head -1 | awk '{ print $6, $7, $8,...,$13}' `
echo " ${var1} ,${var2} $an " | mail -s "Information sur ${var} du $jour $mois $an" mamamamamma@chut.fr
fi
aidez moi svp je ne sais pas prquoi ça ne marche pas
quand j'exécute j'ai rien comme message
dans le répertoire mami/tot/jpg j'ai 6 fichiers(A,B,c,d,e,f) et dans le fichier d
voila ce que j'ai par exemple ce genre de lignes plusieurs fois:
02C8020060901148977I081020000
02C80200609061660002700070603
02C80200609083520002822080610
02C80200609100531003171010279
je veux recupérer dans 2variables var1 et var2 (les elements à parir du 6ème element au 13 element) qui signifie année ,le mois et le jour.
sachant que var1 est egaleà la plus petite date(date avant) ,et var2 la plus grande date :
var1=20060901
var2=20060910
minute=`date +%M`
heure=`date +%H`
jour=`date +%d`
mois=`date +%B`
an=`date +%Y`
mois_chiffre=`date +%m`
VAR="CUBE_`date +%B`"
#export an mois jour heure minute
interface="PH7"
if [ ! -e mami/tot/jpg ] [! -e fichier d]
then
var1=`vi fichier d | tail -1 | head -1 | awk '{ print $6, $7, $8,...,$13}' `
var2=`vi fichier d | tail -1 | head -1 | awk '{ print $6, $7, $8,...,$13}' `
echo " ${var1} ,${var2} $an " | mail -s "Information sur ${var} du $jour $mois $an" mamamamamma@chut.fr
fi
aidez moi svp je ne sais pas prquoi ça ne marche pas
quand j'exécute j'ai rien comme message
Configuration: Windows XP Internet Explorer 7.0
2 réponses
-
Salut,
[trash]$ cat sajodia 02C8020060901148977I081020000 02C80200609061660002700070603 02C80200609083520002822080610 02C80200609100531003171010279 [trash]$ var1=$(sed -n '1p' sajodia) [trash]$ var2=$(sed -n '$p' sajodia) [trash]$ echo ${var1:5:8} 20060901 [trash]$ echo ${var2:5:8} 20060910 [trash]$Bonne continuation ;-))
-
bonjour j'ai fait ce que vous m'avez indiqué mais j'ai rien comme message je ne sais pas prquoi ça ne marche pas
Quest ce qui indique le chemin ou se trouve mon fichier
!/bin/ksh
minute=`date +%M`
heure=`date +%H`
jour=`date +%d`
mois=`date +%B`
an=`date +%Y`
cat nomfichier
var1=$(sed -n '1p' nomfichier )
var2=$(sed -n '$p' nomfichier)
echo ${var1:5:8}
echo ${var2:5:8}
echo " datextrac: ${var1} ${var2}" | mail -s "Information " sarr.josephine@chu-amiens.fr
~
erreur
jose5.sh[11]: ${var1:5:8}: 0403-011 Substitution incorrecte pour cette commande.
Merci de m'aider -
-
-
#!/bin/ksh
minute=`date +%M`
heure=`date +%H`
jour=`date +%d`
#mois=`date +%B`
#an=`date +%Y`
an=2007
mois=SEPTEMBRE
if [ -e /pappppp/mmmm/fil/Poto/$an/$mois -a -e monfichier ]
then
var1= sed -r -e 's/ [0-9]\{2\}[A-Z][0-9]\{2\}\([0-9]\{8\}\).*/\1/p'
var2=
echo " datextrac: ${var1}" | mail -s "Information " sarr.josephine@chu-amiens.fr
fi
j'ai tjrs rien -
-
-
Alors déjà, avant d'essayer d'envoyer un mail, s'assurer que le script fonctionne, et avant ça même, s'assurer que chaque syntaxe marche individuellement !!!
Essaye ça dans ton shell en remplaçant le nom du fichier "plop" par ton fichier :$ cat plop 02C8020060901148977I081020000 02C80200609061660002700070603 02C80200609083520002822080610 02C80200609100531003171010279 $ var1=$(sed -n '1 s/.\{5\}\(.\{8\}\).*/\1/p' plop) $ echo $var1 20060901 $ var2=$(sed -n '$ s/.\{5\}\(.\{8\}\).*/\1/p' plop) $ echo $var2 20060910 $;-))