OVH Cloud OVH Cloud

[HS] - Script

20 réponses
Avatar
Nahliel Steinberg
Bonjour,

Je dois ecrire un script qui test si des fichiers sont vides ou pas.

(ça je vois comment faire le test, deplus j'en ai pas beaucoup que 8 à tester)


En suite ce script doit les copiers à un endroit mais seulement si il n'y en a aucun
qui est vide. si j'en ai au moins un de vide je ne fais rien.

Et là je seche.

--
Nahliel

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers debian-user-french-REQUEST@lists.debian.org
En cas de soucis, contactez EN ANGLAIS listmaster@lists.debian.org
Archive: http://lists.debian.org/20111102093752.GA14424@srvdebian.info-cr.fr

10 réponses

1 2
Avatar
Nahliel Steinberg
Le 02/11/11 at 11:48, Grégory Bulot a ecrit:
Bonjour, Bonsoir,

Le Wed, 2 Nov 2011 11:44:00 +0100, Grégory Bulot, vous avez écrit :

MonFichier



s%/MonFichier/fileresult/g



ok je change ça

--
Nahliel

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive: http://lists.debian.org/
Avatar
Grégory Bulot
Bonjour, Bonsoir,

Le Wed, 2 Nov 2011 11:53:20 +0100, Nahliel Steinberg, vous avez écrit :

J'ai quelques erreurs d'inattention , et il y a quelques erreurs
d'interprétation de votre part. les 2 réunis ça marche moins bien :-D


myfiles="toto.txt titi.txt tata.txt tonton.txt toto2.txt titi2.txt"
for $FILESRESULT in [/app/crunch/temp]/*



$FILESRESULT => FILESRESULT (sans le dollar)
[/app/crunch/temp] => /app/crunch/temp

Je crois qu'il n'y a plus d'erreurs

--
Cordialement
Grégory BULOT

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive: http://lists.debian.org/
Avatar
Grégory Bulot
Bonjour, Bonsoir,

Le Wed, 2 Nov 2011 11:53:20 +0100, Nahliel Steinberg, vous avez écrit :
myfiles="toto.txt titi.txt tata.txt tonton.txt toto2.txt titi2.txt"



inutile


--
Cordialement
Grégory BULOT

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive: http://lists.debian.org/
Avatar
Julien Valroff
Le mercredi 02 nov. 2011 à 11:12:09 (+0100 CET), Nahliel Steinberg a écrit :
>Quel language ? Je présume en shell script d'après l'utilisation ?

Tu présume bien ;-)



Alors je continue à présumer que ce sera en bash ;)

>[ -s fichier ] && echo "Fichier non vide"

Oui ça je sais faire mais pour un fichier



Il te suffit de boucler sur ta liste de fichiers.

>Il te suffit par exemple d'initialiser une variable à 0 en début de script,
>incrémentée à chaque fois qu'un fichier vide est trouvé (en bouclant sur la
>liste des fichiers). Si à la suite de la boucle la variable est > 0, alors
>tu ne fais rien, sinon tu copies les fichiers.

Heuuuu.... ;-)



Quelque chose comme :

#/bin/bash

EMPTY=0

for fichier in ~/test/*; do
[ -s $fichier ] || EMPTY=`expr $EMPTY + 1`
done

[ $EMPTY > 0 ] && echo "$EMPTY fichiers vides ont été trouvés"

Julien


--
.''`. Julien Valroff ~ ~
: :' : Debian Developer & Free software contributor
`. `'` http://www.kirya.net/
`- 4096R/ E1D8 5796 8214 4687 E416 948C 859F EF67 258E 26B1

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive: http://lists.debian.org/
Avatar
Nahliel Steinberg
#/bin/bash

EMPTY=0

for fichier in ~/test/*; do
[ -s $fichier ] || EMPTY=`expr $EMPTY + 1`
done

[ $EMPTY > 0 ] && echo "$EMPTY fichiers vides ont été trouvés"




C'est parfait Julien
Merci
--
Nahliel

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive: http://lists.debian.org/
Avatar
Nahliel Steinberg
#!/bin/bash
for FILESRESULT in /app/crunch/temp/*
do
if [ -s $FILESRESULT ];
then
echo "Au moins un fichier a une taille null"

fi
MYFILES=$MYFILES" "$FILESRESULT
done

echo "on peut copier les fichiers"

Je n'ai plus d'erreur, par contre aucuns test n'est fait j'ai l'impression.

J'ai ça en retour à l'éxécution

Au moins un fichier a une taille null
Au moins un fichier a une taille null
Au moins un fichier a une taille null
Au moins un fichier a une taille null
Au moins un fichier a une taille null
Au moins un fichier a une taille null
Au moins un fichier a une taille null
Au moins un fichier a une taille null
on peut copier les fichiers


Il affiche une ligne "Au moins un fichier a une taille null" par fichier rencontré
qui ne sont pas vide.
et il affiche le dernier echo du script.

J'ai fait un fichier vide pour tester en reel, et il affiche une ligne de plus "Au moins un fichier a une taille null"

;-(


--
Nahliel

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive: http://lists.debian.org/
Avatar
Nahliel Steinberg
Bonjour,

Je viens de finir mon test, et j'ai opté pour la solution de Julien.

J'ai rajouté une condition

EMPTY=0

for fichier in /app/crunch/temp/*; do
[ -s $fichier ] || EMPTY=`expr $EMPTY + 1`
done

#[ $EMPTY > 0 ] && echo "$EMPTY fichiers vides ont été trouvés"

if [ "$EMPTY" -eq 0 ]; then
echo il n y a pas de fichier vide
else
echo il y a des fichiers vide
fi

Ca marche impeccable en rajoutant un fichier vide il le détecte.

Gregory, j'ai repris quelques éléments de ton script, tout ça pour dire
que tu ne m'as pas si gentillement aidé pour rien.

Merci encore à vous deux.


--
Nahliel

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive: http://lists.debian.org/
Avatar
Grégory Bulot
Bonjour, Bonsoir,

Le Wed, 2 Nov 2011 13:02:28 +0100, Nahliel Steinberg, vous avez écrit :

#!/bin/bash
for FILESRESULT in /app/crunch/temp/*
do
if [ -s $FILESRESULT ];
then
echo "Au moins un fichier a une taille null"



Il manque le exit 0 initialement, mais vu la direction prise ce script
n'est pas pertinent !


fi
MYFILES=$MYFILES" "$FILESRESULT
done

echo "on peut copier les fichiers"





--
Cordialement
Grégory BULOT

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive: http://lists.debian.org/
Avatar
Grégory Bulot
Bonjour, Bonsoir,

Le Wed, 2 Nov 2011 13:20:44 +0100, Nahliel Steinberg, vous avez écrit :

Bonjour,

Je viens de finir mon test, et j'ai opté pour la solution de Julien.


Gregory, j'ai repris quelques éléments de ton script, tout ça pour
dire que tu ne m'as pas si gentillement aidé pour rien.



C'est pas pour rien, j'étais plus disposé à sortir un code que de
faire des phrases :-D

Merci encore à vous deux.



De rien


--
Cordialement
Grégory BULOT

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive: http://lists.debian.org/
Avatar
Yves Rutschle
On Wed, Nov 02, 2011 at 11:12:09AM +0100, Nahliel Steinberg wrote:
>Quel language ? Je présume en shell script d'après l'utilisation ?

Tu présume bien ;-)



C'est domage, en Perl on pouvait le faire de façon rigolote:

eval join ' && ', ((map " -s '$_' ", @ARGV), '`cp @ARGV cible`');

Y.

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive: http://lists.debian.org/
1 2