#701 Le 26/10/2009, à 19:18
- AnsuzPeorth
Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)
Merci pour votre aide.
J'arrive a comprendre globalement ce que tu as écrit, mais certaines options m'intriguent :
à quoi sert le "while read" et les "-type f -name", "-exec" ?
While est une boucle ....
Bon, faudra peut être commencer par le début !
Lis déjà cette doc en entier (prends pas peur, ca se lis bien, fait un tour d'ensemble déjà, pour voir les bases du bash)
http://abs.traduc.org/abs-5.3-fr/index.html
Pour la commande find, je l'explique déjà un peu dans le script (la ligne commentée)
Sinon, man find
http://pwet.fr/man/linux/commandes/find
Aprés lecture, si tu as des questions....
Et pour lancer le script a partir d'un lanceur, il suffit de pointer le lanceur vers le script ou y a t-il d'autres choses a faire ? Quand je le fais, le contenu du script s'affiche :x
Il faut rendre le script exécutable avant, attention, il faut créer les dossiers également avant (et je ne l'ai pas testé, c'était pour l'exemple, à améliorer, mais il devrait fonctionner) !
EDIT:Si tu as peur que ca disparaisse, mets cp a la place de mv, ca fera une copie, au moins pour les essais, ou modifie pour afficher uniquement le résultat, ne rien deplacer/copier.
Je me répète, avant toutes choses, commence par le commencement, lis les docs .
Maintenant, si tu veux pas apprendre, tu le dis, je refais le script avec les essais & co, pour ne pas avoir de problème avec. Mais je pensais que c'était plutot une question général, pour apprendre les bash !
Dernière modification par AnsuzPeorth (Le 26/10/2009, à 19:24)
Interface graphique pour bash, python ou autre: glade2script
Support Tchat: http://chat.jabberfr.org/muckl_int/inde … ade2script (Hors ligne)
Hors ligne
#702 Le 26/10/2009, à 19:34
- Fenouille84
Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)
Je te conseille cette structure pour find :
find /ton/répertoire/de/recherche -iname "*ton fichier à rechercher*" -exec mv {} /ton/nouveau/répertoire \;
Avec -iname tu t'embêteras moins la vie => Il ne tient pas compte de la casse.
Dernière modification par Fenouille84 (Le 26/10/2009, à 19:35)
Ma page Deviant Art : conky inside ;-)
.
-- DropBox (online backup) : 2Go + 250 Mo pour vous et moi par parrainage --
Hors ligne
#703 Le 26/10/2009, à 20:08
- MekTypro
Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)
Merci pour les liens, j'ai déjà lu quelques docs mais je n'ai pas trouvé les réponses a mes questions dans ces docs, j'essaye de comprendre mais les docs n'ont jamais ce que je cherche (ou alors je sais pas chercher )
Je comprend pas cette ligne : echo "$NOM_SERIE" | while read ligne
Je sais que while est une boucle, mais je sais pas a quoi sert le "read" derrière (et le "|" sert de séparation ? while n'est pas sensé être en début de ligne ?). "echo" est sensé afficher du texte non ?
J'ai essayé le script avec ce que tu as écrit la page précédente, sur 7 fichiers + sous titres, 3 épisodes et 2 sous-titres sont parvenus jusqu'à mon répertoire, chaque fichiers ayant NOM_SERIE comme nom, les autres ont eu l'air de disparaître :x
Désolé encore, mais je débute ;p
Dernière modification par MekTypro (Le 26/10/2009, à 20:08)
Hors ligne
#704 Le 26/10/2009, à 20:17
- yamo
Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)
Désolé encore, mais je débute ;p
Faut suivre des cours de programmation shell, j'ai trouvé ça :
http://www.ac-creteil.fr/reseaux/systemes/linux/shell-scripts/shell-programmation.html
et
http://www.ac-creteil.fr/reseaux/systemes/linux/
Stéphane
--
Debian 9 XFCE Xubuntu 16.04.2 - #ubuntu sur freenode
sudo / matrix
Hors ligne
#705 Le 26/10/2009, à 22:48
- Fenouille84
Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)
@ MekTypro
Alors où en est ton script ??
Sa y est, j'en ai fini un qui devrait marcher pour ton cas => Certitude : 90% (les 10% c'est parce que je ne connais ni ton système, ni les noms des épisodes... Et aussi parce que je suis débutant ^^).
J'ai testé ce script chez moi, et aucun soucis.
C'est un script console. Si tu le veux, je le post. Si tu préfères chercher encore, vas-y
Ma page Deviant Art : conky inside ;-)
.
-- DropBox (online backup) : 2Go + 250 Mo pour vous et moi par parrainage --
Hors ligne
#706 Le 26/10/2009, à 22:55
- MekTypro
Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)
Voila, en fait un ami m'a aidé sur pidgin, et il m'a fait un truc carrément plus simple que ce à quoi je m'attendais. C'est a base de :
mv /home/$USER/Documents/Download\ Vuze/Hou*.avi /home/$USER/Videos/Series/Dr*/Saison 6/ (en enlevant les accents)
Ça marche nickel, une autre ligne pour les épisodes commençant par "hou" au cas ou les types mettraient pas de majuscule, et 2 autres lignes pour les sous-titres (commençant par Hou et hou du coup).
Evidemment il y a pas mal d'erreurs a chaque fois vu que l'épisode est soit en Hou soit en hou, mais ça marche.
Maintenant je vais essayer de faire fonctionner le lanceur
Dernière modification par MekTypro (Le 26/10/2009, à 23:04)
Hors ligne
#707 Le 26/10/2009, à 23:07
- Fenouille84
Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)
@ MekTypro
Tiens essaye moi sa !! sa évite de t'embêter la vie avec "Hou" "hou" pour les films, pour les sous-titres...
Mon script devrait tout prendre en compte, indépendamment de la casse !!
#!/bin/bash
# Version 1.0
# Ce script permet de déplacer les fichiers téléchargés dans le répertoire voulu.
clear
echo "##############################################"
echo "# #"
echo "# Script 1.0 - Déplacer les fichiers #"
echo "# #"
echo "##############################################"
echo ""
echo ""
echo -n "Nom de la série : "
read SERIE
echo -n "Chemin du répertoire source : "
read SOURCE
test -d "$SOURCE"
while [ $? != 0 ]
do
echo ""
echo "####### Erreur ===> Dossier inexistant #######"
echo ""
echo -n "Chemin du répertoire source : "
read SOURCE
test -d "$SOURCE"
done
echo -n "Nom du répertoire de destination : "
read REP
test -d "$REP"
if [ $? = 0 ]
then
cd "$SOURCE"
find . -maxdepth 1 -type f -iname "*$SERIE*" -exec mv {} "$REP" \;
else
mkdir "$REP"
cd "$SOURCE"
find . -maxdepth 1 -type f -iname "*$SERIE*" -exec mv {} "$REP" \;
fi
exit 0
Enregistres tout sa.
N'oublies pas de le rendre exécutable !! et tente de le lancer pour voir.
Edit 1 : je peux en faire une version annotée si t'as besoin.
Edit 2 : tu peux même rendre le script exécutable via un raccourci clavier !! c'est un bon plan je trouve;)
Dernière modification par Fenouille84 (Le 26/10/2009, à 23:26)
Ma page Deviant Art : conky inside ;-)
.
-- DropBox (online backup) : 2Go + 250 Mo pour vous et moi par parrainage --
Hors ligne
#708 Le 26/10/2009, à 23:26
- MekTypro
Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)
Oui, ça marche aussi mais ça me parait légèrement plus compliqué. Et avec ton script, faut écrire les séries/chemins, pas besoin avec le mien
Hors ligne
#709 Le 26/10/2009, à 23:32
- Fenouille84
Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)
Oui, ça marche aussi mais ça me parait légèrement plus compliqué. Et avec ton script, faut écrire les séries/chemins, pas besoin avec le mien
Ben au moins tu décides vraiment de là où tu veux mettre des fichiers. Et en plus, comme sa tu définis le nom exact que tu veux avoir à ton dossier.
Bref, c'est toi qui voit maintenant !! (il est un peu plus complexe car il vérifie 2 ou 3 choses pour être sur de fonctionner correctement).
Edit : Après, on peut l'adapter pour avoir une interface graphique. Comme sa, on aurait juste à cliquer sur les dossiers voulus, au lieu d'écrire leur chemin.
Dernière modification par Fenouille84 (Le 26/10/2009, à 23:33)
Ma page Deviant Art : conky inside ;-)
.
-- DropBox (online backup) : 2Go + 250 Mo pour vous et moi par parrainage --
Hors ligne
#710 Le 27/10/2009, à 02:17
- AnsuzPeorth
Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)
MekTypro a écrit :Oui, ça marche aussi mais ça me parait légèrement plus compliqué. Et avec ton script, faut écrire les séries/chemins, pas besoin avec le mien
Ben au moins tu décides vraiment de là où tu veux mettre des fichiers. Et en plus, comme sa tu définis le nom exact que tu veux avoir à ton dossier.
Bref, c'est toi qui voit maintenant !! (il est un peu plus complexe car il vérifie 2 ou 3 choses pour être sur de fonctionner correctement).
Edit : Après, on peut l'adapter pour avoir une interface graphique. Comme sa, on aurait juste à cliquer sur les dossiers voulus, au lieu d'écrire leur chemin.
Pour ne pas récrire les chemins et noms de dossier, suffit de les mettres dans une variable, comme je l'ai proposé !
Enfin, je pense que MekTypro ne veut pas trop se prendre le choux, si il préfère écrire x lignes avec plus ou moins de succès, libre à lui
Pour revenir sur ton script Fenouille84, tu as raison d'en écrire, même pour rien, c'est comme ça qu'on apprends !
Sinon, je vois que tu fais des tests sur l'existence des dossiers, par exemple:
test -d "$REP"
if [ $? = 0 ]
reviens au même que (moins de commandes):
if [ -d "$REP" ]; then
Tu écris ensuite plusieurs fois les mêmes lignes dans ton if, on peut s'en passer:
test -d "$REP"
if [ $? = 0 ]
then
cd "$SOURCE"
find . -maxdepth 1 -type f -iname "*$SERIE*" -exec mv {} "$REP" \;
else
mkdir "$REP"
cd "$SOURCE"
find . -maxdepth 1 -type f -iname "*$SERIE*" -exec mv {} "$REP" \;
fi
J'aurais plutôt fait:
#test de l'existence du dossier, utilisation de || a la place du if
#peut s'écrire aussi
#[ ! -d "$REP" ] && mkdir "$REP"
[ -d "$REP" ] || mkdir "$REP"
cd "$SOURCE"
find . -maxdepth 1 -type f -iname "*$SERIE*" -exec mv {} "$REP" \;
Interface graphique pour bash, python ou autre: glade2script
Support Tchat: http://chat.jabberfr.org/muckl_int/inde … ade2script (Hors ligne)
Hors ligne
#711 Le 27/10/2009, à 09:39
- Fenouille84
Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)
J'aurais plutôt fait:
#test de l'existence du dossier, utilisation de || a la place du if #peut s'écrire aussi #[ ! -d "$REP" ] && mkdir "$REP" [ -d "$REP" ] || mkdir "$REP" cd "$SOURCE" find . -maxdepth 1 -type f -iname "*$SERIE*" -exec mv {} "$REP" \;
Énorme la simplification !! Merci
Oui c'est sur que mes scripts sont super bateau, et vraiment écrit très simplement.
Et oui comme tu dis, je fais des scripts pour tout !!
Je suis preneur de tout conseil !! N'hésitez pas
EDIT : je post le nouveau, un peu améliorer => Pour déplacer ou copier un grand nombre de fichiers.
#!/bin/bash
# Version 1.2
# Ce script permet de déplacer les fichiers téléchargés dans le répertoire voulu.
clear
echo "==== Opération sur les fichiers ===="
echo ""
echo "1. Déplacer"
echo "2. Copier"
echo "3. Rien"
echo ""
echo -n "Quelle opération effectuer ? "
read A
case $A in
1 | 1. )
echo ""
echo -n "Nom des fichiers à déplacer : "
read SERIE
echo -n "Chemin du répertoire source : "
read SOURCE
test -d "$SOURCE"
while [ $? != 0 ]
do
echo ""
echo "####### Erreur ==> Dossier inexistant #######"
echo -n "Chemin du répertoire source : "
read SOURCE
test -d "$SOURCE"
done
echo -n "Nom du répertoire de destination : "
read REP
[ -d "$REP" ] || mkdir "$REP"
cd "$SOURCE"
find . -maxdepth 1 -type f -iname "*$SERIE*" -exec mv {} "$REP" \;
;;
2 | 2. )
echo ""
echo -n "Nom des fichiers à copier : "
read SERIE
echo -n "Chemin du répertoire source : "
read SOURCE
test -d "$SOURCE"
while [ $? != 0 ]
do
echo ""
echo "####### Erreur ==> Dossier inexistant #######"
echo -n "Chemin du répertoire source : "
read SOURCE
test -d "$SOURCE"
done
echo -n "Nom du répertoire de destination : "
read REP
[ -d "$REP" ] || mkdir "$REP"
cd "$SOURCE"
find . -maxdepth 1 -type f -iname "*$SERIE*" -exec cp {} "$REP" \;
;;
3 | 3. | * )
echo ""
echo "Abandon - Aucune opération effectuée"
echo " "
;;
esac
exit 0
Je pense que de la même façon, on peut simplifier un peu la boucle While qui teste si le chemin existe.
Dernière modification par Fenouille84 (Le 27/10/2009, à 09:47)
Ma page Deviant Art : conky inside ;-)
.
-- DropBox (online backup) : 2Go + 250 Mo pour vous et moi par parrainage --
Hors ligne
#712 Le 27/10/2009, à 12:36
- AnsuzPeorth
Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)
Bjr,
Tu fais le même genre d'erreurs que tantot ...
Evite au maximum de copier plusieurs fois la même ligne, en codant differement !
Voilà comment je ferais (pour exemple).
#!/bin/bash
A=
reponse=false
clear
echo "==== Opération sur les fichiers ===="
while [ "$reponse" = false ]
do
echo ""
echo "1. Déplacer"
echo "2. Copier"
echo "3. Rien"
echo ""
echo -n "Quelle opération effectuer ? "
read A
if [ "$A" = 1 ] || [ "$A" = 2 ] || [ "$A" = 3 ]; then
reponse=true
else
echo "####### Erreur ==> Veuillez saisir un numéro proposé #######"
reponse=false
fi
done
[ "$A" = 3 ] && echo "Abandon - Aucune opération effectuée" && exit
echo ""
echo -n "Nom des fichiers à déplacer : "
read SERIE
echo -n "Chemin du répertoire source : "
read SOURCE
while [ ! -d "$SOURCE" ] #ou until [ -d "$SOURCE" ]
do
echo ""
echo "####### Erreur ==> Dossier inexistant #######"
echo -n "Chemin du répertoire source : "
read SOURCE
done
echo -n "Nom du répertoire de destination : "
read REP
[ -d "$REP" ] || mkdir "$REP"
cd "$SOURCE"
[ "$A" = 1 ] && find . -maxdepth 1 -type f -iname "*$SERIE*" -exec mv {} "$REP" \;
[ "$A" = 2 ] && find . -maxdepth 1 -type f -iname "*$SERIE*" -exec cp {} "$REP" \;
exit
Il faudrait encore vérifier que la variable SERIE soit bien remplie ([ -n "$SERIE" ])
Le script pourrait encore être amélioré, au boulot ! (il y a encore 2 lignes qui sont répétées, mais si on veut l'éviter, il n'y auras plus le message d'erreur, à voir comment contourner !)
Je n'ai rien testé du tout hein, c'est comme ça, pour faire avancer le schmilblick
Interface graphique pour bash, python ou autre: glade2script
Support Tchat: http://chat.jabberfr.org/muckl_int/inde … ade2script (Hors ligne)
Hors ligne
#713 Le 27/10/2009, à 14:36
- Fenouille84
Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)
Bjr,
Tu fais le même genre d'erreurs que tantôt ...
Evite au maximum de copier plusieurs fois la même ligne, en codant différemment !Voilà comment je ferais.
Quelle simplification !! Chapeau et surtout merci !!
Je l'ai modifié un peu :
* Modification de la mise en forme
* Ajout d'une dépendance zenity pour sélectionne graphiquement le dossier source.
* Donc suppression de la boucle vérifiant si ce dossier source existe.
* Suppression de A= en début de script (cette ligne est inutile).
EDIT :
Mises à jour 2.0
* Grande simplification du code grâce à AnsuzPeorth
Mises à jour 2.2
* Le script permet maintenant de déplacer/copier soit des fichiers, soit des dossiers (selon le choix de l'utilisateur).
* Le script intègre une interface graphique (via zenity) pour sélectionner/créer les fichiers (source et destination).
Mises à jour 2.4
* Boucle permettant d'effectuer plusieurs opérations sur les fichiers/dossiers sans relancer le script à chaque fois.
Voici la dernière version :
#!/bin/bash
# Version 2.4
# Ce script permet de déplacer/copier massivement des fichiers/dossiers dans le répertoire voulu.
### Boucle SUDO ###
sudo -k
clear
echo "### Droits administrateur nécessaires pour l'exécution ###"
echo "------------------------------------------------------------"
echo
US=`sudo whoami`
if [ "$US" = 'root' ]
then
echo
echo "### Droits administrateur obtenus - Exécution accordée ###"
echo "------------------------------------------------------------"
echo ; echo
else
echo
echo "### Droits administrateur erronés - Exécution refusée ###"
echo "-----------------------------------------------------------"
echo
exit 1
fi
##
### Script ###
MAIN=n
while [ "$MAIN" = n ]
do
reponse=false
clear
echo "============= Opération sur les fichiers ============="
echo "------------------------------------------------------"
while [ "$reponse" = false ]
do
echo
echo "1. Déplacer"
echo "2. Copier"
echo "3. Rien"
echo
echo -n "Quelle opération effectuer ? "
read A
if [ "$A" = 1 ] || [ "$A" = 2 ] || [ "$A" = 3 ]
then
reponse=true
else
echo "Erreur ==> Veuillez saisir un numéro proposé."
reponse=false
fi
done
[ "$A" = 3 ] && echo "==> Opérations terminées" && echo && exit 0
echo -n "Fichiers / Dossiers [f/d] ? "
read TYPE
if [ "$TYPE" = d ] || [ "$TYPE" = D ] || [ "$TYPE" = dossier ] || [ "$TYPE" = Dossier ] || [ "$TYPE" = dossiers ] || [ "$TYPE" = Dossiers ]
then
TYPE=d
else
TYPE=f
fi
echo -n "Mots clé à chercher : "
read SERIE
echo
SOURCE=`zenity --file-selection --directory --title="Sélectionnez le répertoire source"`
echo "Répertoire source : "$SOURCE
DEST=`zenity --file-selection --directory --title="Sélectionnez le répertoire destination"`
echo "Répertoire destination : "$DEST
echo
cd "$SOURCE"
[ "$A" = 1 ] && find . -maxdepth 1 -type $TYPE -iname "*$SERIE*" -exec mv {} "$DEST" \;
[ "$A" = 2 ] && find . -maxdepth 1 -type $TYPE -iname "*$SERIE*" -exec cp {} "$DEST" \;
echo "==> Opération effectuée avec succès."
echo
echo -n "Avez-vous terminé les opérations [o/n] ? "
read MAIN
done
echo "==> Opérations terminées"
exit 0
Voili voilou ^^
Dernière modification par Fenouille84 (Le 27/10/2009, à 21:58)
Ma page Deviant Art : conky inside ;-)
.
-- DropBox (online backup) : 2Go + 250 Mo pour vous et moi par parrainage --
Hors ligne
#714 Le 27/10/2009, à 14:37
- Fenouille84
Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)
BOUCLE SUDO => Etre sur que le script se lance avec les droits administrateurs !!
#!/bin/bash
# Script 1.0
# Ce script permet de ...
# Boucle SUDO
sudo -k
clear
echo "### Droits administrateur nécessaires pour l'exécution ###"
echo "------------------------------------------------------------"
echo
US=`sudo whoami`
if [ "$US" = 'root' ]
then
echo
echo "### Droits administrateur obtenus - Exécution accordée ###"
echo "------------------------------------------------------------"
echo ; echo
else
echo
echo "### Droits administrateur erronés - Exécution refusée ###"
echo "-----------------------------------------------------------"
echo
exit 1
fi
clear
# Insérer ci-dessous la suite du script
...
...
Ma page Deviant Art : conky inside ;-)
.
-- DropBox (online backup) : 2Go + 250 Mo pour vous et moi par parrainage --
Hors ligne
#715 Le 28/10/2009, à 11:36
- Fenouille84
Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)
Bonjour
Existe-t-il un moyen simple de renommer des dossiers du type => "Nom - Date - Prénom - Mots clé" vers quelque chose du genre => "Prénom - Mots clé"
Je ne m'y connais pas trop encore en commande. Je suis ultra novice.
Donc bêtement, je tente avec find et cut, mais c'est injouable !! trop complexe
Une idée svp ?
Edit : en gros, couper le nom du dossier après une date de format : 2009-06-17
Dernière modification par Fenouille84 (Le 28/10/2009, à 12:08)
Ma page Deviant Art : conky inside ;-)
.
-- DropBox (online backup) : 2Go + 250 Mo pour vous et moi par parrainage --
Hors ligne
#716 Le 28/10/2009, à 12:34
- AnsuzPeorth
Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)
Bjr,
Tes dossiers ont tous le même format , CAD "Nom - Date - Prénom - Mots clé"
Ou ca peut changer ?
Sinon, il y a la commande rename, mais pour le découpage, faut voir les noms de dossiers.
Donne qqles exemple précis, avant, après.
Interface graphique pour bash, python ou autre: glade2script
Support Tchat: http://chat.jabberfr.org/muckl_int/inde … ade2script (Hors ligne)
Hors ligne
#717 Le 28/10/2009, à 13:07
- Fenouille84
Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)
Alors ce sont des fichiers du genre :
"DVD Live_part1 - 2008-08-17 - The White Stripes - Memphis - USA"
"Album live in Paris - 2000-03-21 - Linkin Park - Meteora/Reanimation"
Que je voudrais renommer en :
"The White Stripes - Memphis - USA"
"Linkin Park - Meteora/Reanimation"
=> Couper le nom du fichier juste après la date, et ne garder que ce qui suit la date.
Ma page Deviant Art : conky inside ;-)
.
-- DropBox (online backup) : 2Go + 250 Mo pour vous et moi par parrainage --
Hors ligne
#718 Le 28/10/2009, à 13:47
- AnsuzPeorth
Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)
Bon,
Il faudra utiliser rename (par exemple).
A savoir qu'il utilise le remplacement comme sed (sauf que c'est du perl-regex, et je suis pas spécialiste )
Ex avec sed:
echo "DVD Live_part1 - 2008-08-17 - The White Stripes - Memphis - USA" | sed 's@^.*[0-9] - @@'
The White Stripes - Memphis - USA
Donc avec rename, attention, je n'ai pas testé (il faudra travailler sur le nom de fichier, par sur le chemin avec l'exemple qui suit):
ls | xargs rename 's@^.*[0-9] - @@'
ou par fichier dans une boucle par exemple:
rename 's@^.*[0-9] - @@' fichier
ou pour traiter tout un dossier
cd dossier
rename 's@^.*[0-9] - @@' *
Ca doit être possible également de renommer avec les chemins (donc en sortie de find)
Je dois m'absenter qqles heures, je ferais des test après, si tu n'y arrives po !
EDIT: peut etre que le ^ sera de trop dans rename, à essayer.
Dernière modification par AnsuzPeorth (Le 28/10/2009, à 13:49)
Interface graphique pour bash, python ou autre: glade2script
Support Tchat: http://chat.jabberfr.org/muckl_int/inde … ade2script (Hors ligne)
Hors ligne
#719 Le 28/10/2009, à 14:16
- Fenouille84
Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)
@ AnsuzPeorth
Merci !!!! J'ai dû modifier un peu ta commande, mais sa fonctionne
Edit : voici la version finale
#!/bin/bash
# Version 1.0
# Script permet de renommer massivement les dossiers/fichiers d'un répertoire.
# Dossiers/fichiers nommés sous la forme :
### DVD Live_part1 - 2008-08-17 - The White Stripes - Memphis - USA
### Nom - Date (2001-01-01) - Prénom - Mot clé
clear
echo "================ Renommer les fichiers ==============="
echo "------------------------------------------------------"
echo
echo -n "Renommer les fichiers du répertoire habituel [o/n] ? "
read REP
[ "$REP" = o ] || exit 0
cd /répertoire/avec/fichier-dossiers/à/renommer
ls | rename 's@^.*[0-9] - @@'
echo "Renommage effectué avec succès"
echo
exit 0
P.S. :
Tu pourrais m'expliquer un peu la commande stp ? j'arrive pas à la décortiquer...
(J'ignore tout de sed... Pour un débutant, c'est assez complexe dans la syntaxe je trouve !!)
Dernière modification par Fenouille84 (Le 28/10/2009, à 15:22)
Ma page Deviant Art : conky inside ;-)
.
-- DropBox (online backup) : 2Go + 250 Mo pour vous et moi par parrainage --
Hors ligne
#720 Le 28/10/2009, à 17:46
- AnsuzPeorth
Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)
Tu pourrais enlever le ls (une commande de moins) comme je te l'ai proposé au dessus
cd dossier
rename 's@^.*[0-9] - @@' *
Pour sed, un trés bon tutoriel (plus de place pour l'ajouter à ma signature !)
http://www.commentcamarche.net/faq/suje … sed-part-i
Pour dégrossir
sed 's@^.*[0-9] - @@'
^ = debut de ligne
.* = repetition de n'importe quel caractère
[0-9] = un chiffre
Le @ remplace les / habituels dans sed, pour éviter les problèmes sur les traitements de chemins (des fois que tu voudrais travailler avec find et le chemin complet)
Dernière modification par AnsuzPeorth (Le 28/10/2009, à 17:47)
Interface graphique pour bash, python ou autre: glade2script
Support Tchat: http://chat.jabberfr.org/muckl_int/inde … ade2script (Hors ligne)
Hors ligne
#721 Le 28/10/2009, à 21:04
- Fenouille84
Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)
@ AnzusPeorth
Merci pour tes renseignements
et en effet, la 2° fonctionne pour renommer tout le répertoire.
Je vais aller lire le méga tuto de sed !! J'ai de quoi m'occuper là
Ma page Deviant Art : conky inside ;-)
.
-- DropBox (online backup) : 2Go + 250 Mo pour vous et moi par parrainage --
Hors ligne
#722 Le 30/10/2009, à 10:33
- Fenouille84
Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)
Bonjour, c'est encore moi
J'aurais besoin de votre aide pour simplifier un script !! Je me suis créé un script de maintenance, construit comme sa :
Que voulez-vous faire ?
1. Maintenance historique
2. Maintenance MAJ
3. Maintenance complète
4. Quitter
read REP
case $REP in
1 )
code pour toutes les actions supprimant l'historique
;;
2 )
code pour toutes les actions mettant à jour les paquets
;;
3 )
code pour toutes les actions supprimant l'historique
code pour toutes les actions mettant à jour les paquets
;;
esac
exit 0
J'ai donc une répétition massive de code
Il y aurait-il un moyen de rendre ce script plus simple ? Ou moins redondant en tout cas ?
merci pour vos suggestions
Dernière modification par Fenouille84 (Le 30/10/2009, à 10:33)
Ma page Deviant Art : conky inside ;-)
.
-- DropBox (online backup) : 2Go + 250 Mo pour vous et moi par parrainage --
Hors ligne
#723 Le 30/10/2009, à 12:55
- AnsuzPeorth
Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)
Bjr,
Une solution est de mettre tes codes dans des fonctions:
function Historique()
{
code pour toutes les actions supprimant l'historique
}
function Maj()
{
code pour toutes les actions mettant à jour les paquets
}
Que voulez-vous faire ?
1. Maintenance historique
2. Maintenance MAJ
3. Maintenance complète
4. Quitter
read REP
case $REP in
1 )
Historique;;
2 )
Maj;;
3 )
Historique
Maj;;
esac
exit 0
Interface graphique pour bash, python ou autre: glade2script
Support Tchat: http://chat.jabberfr.org/muckl_int/inde … ade2script (Hors ligne)
Hors ligne
#724 Le 30/10/2009, à 13:27
- Fenouille84
Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)
Bjr,
Une solution est de mettre tes codes dans des fonctions:
Mais quel idiot !!! Évidement !!!
Le pire, c'est que je me suis déjà servi de ce procédé au sein même de ce script !!
Bref, merci
Dernière modification par Fenouille84 (Le 30/10/2009, à 13:59)
Ma page Deviant Art : conky inside ;-)
.
-- DropBox (online backup) : 2Go + 250 Mo pour vous et moi par parrainage --
Hors ligne
#725 Le 05/11/2009, à 18:10
- lekokeliko
Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)
un ptit peu d'aide par ici création de script pour retoucher une feuille de style faite pas kompozer http://forum.ubuntu-fr.org/viewtopic.php?id=355693
merci
No brain, No fear !
http://www.dailymotion.com/lekokeliko ~Tictactux~ site internet crée par moi
On em#%*de les ingénieurs, on test et on voit si ca l'fait ou pas ;)
A Embrun
Hors ligne