Problème script et commande awk
sajodia
Messages postés
45
Statut
Membre
-
jipicy Messages postés 41342 Statut Modérateur -
jipicy Messages postés 41342 Statut Modérateur -
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
A voir également:
- Problème script et commande awk
- Invite de commande - Guide
- Script vidéo youtube - Guide
- Commande terminal mac - Guide
- Diskpart commande - Guide
- Commande dism - Guide
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 ;-))
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 :
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
$;-))
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
T'aurais du préciser le shell utilisé dans ton 1er message...
Désolé.
echo $var1 | sed 's/.\{5\}\(.\{8\}\).*/\1/';-))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
Et puis la syntaxe est plutôt du genre de celle-ci :
var1=$(sed -nr '1 s/.{5}(.{8}).*/\1/p') fichier