Jacques L'helgoualc'h <[EMAIL PROTECTED]> wrote: | 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 Ce dernier script marche à MERVEILLE. Tous les anciens fichiers sont enlevés et un nouveau du jour est crée; si un nouveau du jour existe déjà celui-ci est remplacé ! Reste encore: - si plusieurs répertoires à sauver. - que le script s'exécute lors du login à la machine par l'utilisateur (workstation). C'est trop demandé ? Déjà merci pour ton temps.
mess-mate -- A few hours grace before the madness begins again. -- 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]