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]

Répondre à