Aide pour script bash

Aide pour script bash - Codes et scripts - Linux et OS Alternatifs

Marsh Posté le 05-03-2011 à 18:04:34    

Bonjour à tous,
 
Débutant dans les scripts linux, je cherche des pistes pour faire le script suivant :
 
Dans un dossier defini dans le script j'aurai besoin de compter le nombre de fichier contenu dans des sous dossiers.
Si l'extension est .php, .php5, .html (...) et si le sous dossier ne contient qu'un fichier alors je le deplace vers le dossier defini.
Je supprime le dossier dorénavant vide.
Si le sous dossier contient plus d'un fichier alors je ne fais rien.
 
Toute aide est la bienvenue !!
 
Merci d'avance.

Reply

Marsh Posté le 05-03-2011 à 18:04:34   

Reply

Marsh Posté le 05-03-2011 à 19:26:08    

Tu peux faire à peu près tout ça avec la commande "find".

Reply

Marsh Posté le 05-03-2011 à 20:15:22    

peux tu m'en dire plus ?
 
La commande find va me permettre de trouver les fichiers avec les extensions recherchées ?
Par contre pour lister les sous dossiers je pensais regarder du coté de ls
Mais pour voir si il y a 1 ou x fichiers avec l'extension (ou les extensions) en fonction des sous dossiers ??
 
Je suppose qu'il va falloir faire un find /dossier/ -name *.php,*.php5 exec{}
 
Mais exec quoi exactement !

Message cité 2 fois
Message édité par mozvillat le 05-03-2011 à 20:21:21
Reply

Marsh Posté le 06-03-2011 à 19:52:06    

mozvillat a écrit :

Mais exec quoi exactement !


 
Je sais pas trop, je trouve pas ton message super clair, mais c'est peut-être moi qui suis fatigué.
 
Tu parles de compter, puis tu dis pas quoi faire du comptage, puis c'est assez vague cette histoire de "sous dossiers" et de "dossier défini".
 
Précisément et avec exemple si possible, qu'est-ce que tu veux faire ?


Message édité par regexp42 le 06-03-2011 à 19:52:23
Reply

Marsh Posté le 06-03-2011 à 20:32:11    

mozvillat a écrit :

peux tu m'en dire plus ?
 
La commande find va me permettre de trouver les fichiers avec les extensions recherchées ?
Par contre pour lister les sous dossiers je pensais regarder du coté de ls
Mais pour voir si il y a 1 ou x fichiers avec l'extension (ou les extensions) en fonction des sous dossiers ??
 
Je suppose qu'il va falloir faire un find /dossier/ -name *.php,*.php5 exec{}
 
Mais exec quoi exactement !


 
Je ferais une crapulerie du genre:
 

for i in `ls -d`
  do
   count=`ls $i/|egrep -c .[ph][ht][mp]`
   if [ "$count" = "1" ]
     then
       mv $i/*.[ph][ht][mp]* /dossier/defini/qu'il/faut/peut-être/créer/avant
       rm -rf $i
   fi
  done


 
typos et autres "oops" sont inclus gratuitement mais ça ne doit pas être trop loin de l'idée générale.

Reply

Marsh Posté le 14-04-2011 à 11:27:41    

Je pense que le egrep -c .[ph][ht][mp] ne fonctionnera pas.
 
Il faudrait plutôt faire un  

Code :
  1. egrep -c ".ph*|.htm*"

Message cité 1 fois
Message édité par Wobak le 14-04-2011 à 11:27:51
Reply

Marsh Posté le 14-04-2011 à 11:40:36    

Pour le count c'est plus propre de faire comme cela :  

Code :
  1. ls *.php* *.html|wc -l

Reply

Marsh Posté le 14-04-2011 à 12:51:37    

Wobak a écrit :

Je pense que le egrep -c .[ph][ht][mp] ne fonctionnera pas.
 
Il faudrait plutôt faire un  

Code :
  1. egrep -c ".ph*|.htm*"



 
Ca fonctionne, mais ta méthode ne présente pas le risque - certes infime - de lister une extension qu'on ne veut pas.
 
Après, je doute que le gars s'intéresse encore à la réponse après 6 semaines.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed