Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1792 connectés 

  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  [BASH] Existence de fichiers par extension

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[BASH] Existence de fichiers par extension

n°1273368
Brad Pitt
I want to believe
Posté le 08-04-2011 à 11:09:56  profilanswer
 

Bonjour,
 
j'essaye d'écrire un script pour savoir si tel ou tel type de fichier est présent sur un serveur Samba.
 
En gros, au lancement du script, je suis invité à saisir l'extension recherchée, puis le script me dit si le type de fichier en question est présent sur le serveur.
 
J'ai établi une ébauche de script avec mes maigres connaissances et en bidouillant avec des c/c de scripts trouvés sur le net. Mais bien entendu, ça ne fonctionne pas.
 
Pour l'instant j'ai ça :
 

Code :
  1. # Saisie du type de fichier a rechercher
  2. echo -e "Quel type de fichiers cherchez-vous ? \c"
  3. read reponse
  4. files=$(ls /*.$reponse 2> /dev/null | wc -l)
  5. if [ "$files" != "0" ]
  6. then
  7. echo "Il y a bien des fichiers $reponse sur le serveur."
  8. else
  9. echo "Il n'y a pas de fichier $reponse sur le serveur."
  10. fi


 
Sachant qu'à l'exécution, j'ai moult messages d'erreur et ne serait-ce que le "read" n'a pas l'air de fonctionner.
 
Si vous avez des solutions à me proposer, je suis preneur.


---------------
Dieu se rit des hommes qui déplorent les effets dont ils chérissent les causes. J.-B. Bossuet
mood
Publicité
Posté le 08-04-2011 à 11:09:56  profilanswer
 

n°1273374
Wobak
Come get some !
Posté le 08-04-2011 à 11:19:03  profilanswer
 

Ok à mon avis ton gros souci vient de ça :  
$(ls /*.$reponse 2> /dev/null | wc -l)
 
là tu cherches les fichiers à partir de la racine /
 
Donc ton script ne cherche pas où il faut à priori.
 
T'es déjà dans le dossier ? Enlève ton /
 
Ensuite si t'es sur un linux, remplace ton echo / read par :
 
read -p "Quel type de fichier recherchez vous" reponse

n°1273376
Brad Pitt
I want to believe
Posté le 08-04-2011 à 11:26:30  profilanswer
 

OK, c'est déjà un élément de réponse.
 
Pour le répertoire, je voudrais que la recherche s'effectue sur l'ensemble du serveur ou plutôt dans tous les sous-rep d'un répertoire donné.


---------------
Dieu se rit des hommes qui déplorent les effets dont ils chérissent les causes. J.-B. Bossuet
n°1273467
slywalker
Posté le 08-04-2011 à 15:26:54  profilanswer
 

Code :
  1. #!/bin/sh
  2. CHEMIN=/root
  3. # Saisie du type de fichier a rechercher
  4. echo -e "Quel type de fichiers cherchez-vous ? \c"
  5. read REPONSE
  6. NBFILES=$(find $CHEMIN -name '*.'$REPONSE | wc -l)
  7. if [ "$NBFILES" != "0" ]
  8. then
  9. echo "Il y a $NBFILES fichiers $REPONSE sur le serveur."
  10. else
  11. echo "Il n'y a pas de fichier $REPONSE sur le serveur."
  12. fi

n°1273472
Brad Pitt
I want to believe
Posté le 08-04-2011 à 15:44:25  profilanswer
 

Je vais tester, merci ;)


---------------
Dieu se rit des hommes qui déplorent les effets dont ils chérissent les causes. J.-B. Bossuet
n°1273474
slywalker
Posté le 08-04-2011 à 15:51:37  profilanswer
 

Normalement c'est tout bon  :D

n°1273478
Brad Pitt
I want to believe
Posté le 08-04-2011 à 16:14:11  profilanswer
 

J'ai testé sur mandriva et j'ai toujours les mêmes erreurs à la con (pas de screen, je poste avec mon iPhone).
Bref, je verrai la semaine prochaine ce que ça donne sur le serveur.


---------------
Dieu se rit des hommes qui déplorent les effets dont ils chérissent les causes. J.-B. Bossuet
n°1273481
slywalker
Posté le 08-04-2011 à 16:21:05  profilanswer
 

bizarre ça marche de mon côté sur du RHEL5  :heink:  
 
si jamais t'as l'occasion de poster les erreurs, ça m'interesse  :D

n°1273483
Brad Pitt
I want to believe
Posté le 08-04-2011 à 16:30:45  profilanswer
 

Ce sera fait lundi :jap:


---------------
Dieu se rit des hommes qui déplorent les effets dont ils chérissent les causes. J.-B. Bossuet
n°1273484
slywalker
Posté le 08-04-2011 à 16:31:14  profilanswer
 

merci  :)

mood
Publicité
Posté le 08-04-2011 à 16:31:14  profilanswer
 

n°1273555
Wobak
Come get some !
Posté le 09-04-2011 à 01:58:32  profilanswer
 

Le '*.'$REPONSE ne doit pas bien marcher ::
 
Un "*.$REPONSE" marcherait mieux je pense ?

n°1273562
Brad Pitt
I want to believe
Posté le 09-04-2011 à 09:05:26  profilanswer
 

Je ferai un test avec cette écriture.


---------------
Dieu se rit des hommes qui déplorent les effets dont ils chérissent les causes. J.-B. Bossuet
n°1273682
Brad Pitt
I want to believe
Posté le 11-04-2011 à 08:58:25  profilanswer
 

Voilà les erreurs que j'ai :

 

http://hfr-rehost.net/self/pic/da1a74af77a6ebbc25bb283c0f34078e297ed211.jpeg

 

Avec ce script :

 
Code :
  1. #!/bin/sh
  2. # Script de recherche de type de fichiers
  3. # Auteur : Brad
  4. # Dernière modification : 11/04/2011
  5. # Effacement de l'ecran
  6. clear
  7. CHEMIN=/root
  8. # Saisie du type de fichier a rechercher
  9. echo -e "Quel type de fichiers cherchez-vous ? \c"
  10. read REPONSE
  11. NBFILES=$(find $CHEMIN -name '*.'$REPONSE | wc -l)
  12. if [ "$NBFILES" != "0" ]
  13. then
  14. echo "Il y a $NBFILES fichiers $REPONSE sur le serveur."
  15. else
  16. echo "Il n'y a pas de fichier $REPONSE sur le serveur."
  17. fi
 

edit : mêmes erreurs avec les 2 écritures pour  '*.'$REPONSE


Message édité par Brad Pitt le 11-04-2011 à 08:59:04

---------------
Dieu se rit des hommes qui déplorent les effets dont ils chérissent les causes. J.-B. Bossuet
n°1273684
slywalker
Posté le 11-04-2011 à 09:07:28  profilanswer
 

Arghhhh proxy-taff nazi, je peux pas voir ta capture  :sweat:

n°1273689
Brad Pitt
I want to believe
Posté le 11-04-2011 à 09:16:03  profilanswer
 

C'est quoi ce proxy qui bloque HFR rehost...

 

Ça donne

 
Citation :


 : commande introuvablee 5:
 : commande introuvablee 7: clear
 : commande introuvablee 8:
 : commande introuvablee 9:
Quel type de fichiers cherchez-vous ? exe
 " : identifiant non valable read: " REPONSE
find: `/root\r' : Aucun fichier ou dossier de ce type
script_rech_fic.sh: line 22:_Erreur de syntaxe : fin de fichier prématurée


Message édité par Brad Pitt le 11-04-2011 à 09:16:25

---------------
Dieu se rit des hommes qui déplorent les effets dont ils chérissent les causes. J.-B. Bossuet
n°1273692
slywalker
Posté le 11-04-2011 à 09:33:09  profilanswer
 

Ah ouais quand même !  
 
Pour les " : commande introuvable", je trouve que ça ressemble vachement à des mauvais retours de ligne.
 
essaye de faire :

Code :
  1. dos2unix ton_fichier


 
Puis lance-le à nouveau !

n°1273703
Brad Pitt
I want to believe
Posté le 11-04-2011 à 10:02:44  profilanswer
 

Ouais, apparemment il y avait un problème de compatibilité (je l'avais d'abord tapé sur Seven en *.txt)
 
Je l'ai retapé sous vi et ça marche.
 
Merci de votre aide.


---------------
Dieu se rit des hommes qui déplorent les effets dont ils chérissent les causes. J.-B. Bossuet
n°1273707
slywalker
Posté le 11-04-2011 à 10:25:55  profilanswer
 

de rien  ;)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  [BASH] Existence de fichiers par extension

 

Sujets relatifs
[Bash] Modifier une partie d'une variable mais pas tout !!Aide pour script bash
[bash] tester si une variable (multivaluée) est videRenommage de fichiers en masse
[BASH] Récupérer un morceau de variable...[BASH] - Variables et substitution -Resolu
[Linux - Bash] organiser un groupe de lettres par ordre ALPHARécupérer des fichiers cachés sur un serveur [podcast]
[REGLE] bash: ./jext: Permission non accordée 
Plus de sujets relatifs à : [BASH] Existence de fichiers par extension


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR