mess-mate a �crit, mardi 7 juin 2005, � 00:42 :
> Bonsoir,
bonjour,
> comme j'ai pas d'exp�rience avec l'extraction d'une partie de mot
> d'un mot, voici mon pb:
> J'ai un fichier Boot-07.tgz
> de ce fichier je voudrais y retrouver le '07' qui repr�sente le n�
> du jour
$ FILE="Boot-07.tgz"
$ NUM="${FILE#Boot-}"
$ NUM="${NUM.tgz}"
Avec un champ de longueur fixe, on a aussi ${param�tre:d�but:longueur} ;
le suivant est
numero="$(printf '%02d' $[ "$NUM" + 1 ])"
$ echo "$numero"
08
> et si il est plus petit que celui que je vais cr�er au jour '08',
> qu'il soit effac�.
> Il est �vident si plus facile que je pourrais aussi bien cr�er le
> fichier '07-boot.tgz'
>
> Ou tout simplement num�roter en continu ( plus le n� du jour) ce
> fichier.C�d 1-boot.tgz, 2-boot.tgz
Il me semble plus commode d'utiliser la date, avec un format assurant
l'ordre chronologique ; on �vite ainsi de d�pendre de la pr�sence de
l'archive pr�c�dente pour d�terminer le num�ro.
$ date '+%Y-%m-%d'
2005-06-07
et la date d'hier est
$ date '+%Y-%m-%d' -d '1 day ago'
2005-06-06
> et effacer le fichier avec le plus petit n�
> De ce fait j'aurais toujours qu'un seul fichier de backup qui
> passera par un crontab.
Il me para�t plus s�r d'attendre la cr�ation de l'archive du jour pour
effacer les pr�c�dentes, si la place n'est pas un probl�me.
Le script suivant devrait faire � peu pr�s ce que tu demandes ?
ARCHIVE_DU_JOUR="Boot-$(date '+%Y-%m-%d').tgz"
tar czf "$ARCHIVE_DU_JOUR" /les/reps/�/sauver && { \
ls -1 Boot-[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9].tgz | \
grep -v -F "$ARCHIVE_DU_JOUR" | \
xargs rm -f
}
--
Jacques L'helgoualc'h
--
Pensez � lire la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Pensez � rajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]