|
Publicité ' | ||||||||||||||||||||||||
|
|
#21 |
![]() ![]() Inscription : février 2008 Messages : 2 747 ![]() |
bah, ouais, si tu essayes d'exécuter un script bash avec sh, ça va pas fonctionner !
ajoute un shebang (#!/bin/bash) au début du script. rends-le exécutable (chmod u+x tonScript) et exécute-le là où il est (./tonScript). |
|
|
00
|
|
|
#22 |
|
Membre du Club
![]() irwin Analyste d'exploitation Inscription : janvier 2012 Messages : 83 ![]() |
Bien disons que il n'y a que comme ca qu'il se lançait sur le media externe, ducoup j'ai tellement était vite a le tester que j'ai zap les bases....
Merci je reteste au plus vite |
|
|
00
|
|
|
#23 | ||
|
Membre du Club
![]() irwin Analyste d'exploitation Inscription : janvier 2012 Messages : 83 ![]() |
bon après test perso sur le DD externe directement ca ne fonctionne pas de permission accordée.
En local avec un dossier contenant répertoires et fichiers, le soucis il me copie juste le contenu identique dans un nouveau dossier "trier" voilà le code tester en local. Code :
|
||
|
|
00
|
|
|
#24 | ||||||||||
![]() ![]() Inscription : février 2008 Messages : 2 747 ![]() |
ça semble fonctionner pour moi :
Code :
Code :
Code :
Code :
il faut adapter le script et le find : Code :
|
||||||||||
|
|
00
|
|
|
#25 | ||||||||
|
Membre du Club
![]() irwin Analyste d'exploitation Inscription : janvier 2012 Messages : 83 ![]() |
bon une fois le probleme du DD externe réglé j'ai tenté un premier avec echo qui n'a pas de message d'erreur, le hic il ne me crée pas le dossier au nom du fichier mais ça crée un dossier /media/sdb5/a_trier dans le dossier trier.
résultat avec le script donner par N_BaH Code :
récapitulatif du code actuel: Code :
Après ce n'est pas fini, car je dois ignoré les chiffres pour la recherche sans ignoré le fichier lui même...tout en les conservant dans le nom de fichier et non du dossier (casse tête je sais) Sur le plan actuel le script me les supprimes, sauf que je dois les garder dans le nom copié. Ce que je n'arrive pas à faire est d'ignorer le chiffre pour find. Et de le garder dans le nom de la copie, je n'ai qu'a retirer l'exception du cp. Donc je suis reparti sur une base tel quel: Code :
Code :
Code :
test -d "$dest" || echo mkdir -p "$dest" |
||||||||
|
|
00
|
|
|
#26 | ||
|
Membre du Club
![]() irwin Analyste d'exploitation Inscription : janvier 2012 Messages : 83 ![]() |
Pour retravailler le mkdir du dossier je suis tombé là-dessus :
Code :
Donc l'idée est de passer le nom du fichier en variable pour créer le dossier (toujours en excluant les chiffres) et c'est là que je bloque à nouveau. |
||
|
|
00
|
|
|
#27 |
![]() ![]() Inscription : février 2008 Messages : 2 747 ![]() |
il est préférable de conserver lspour un usage interactif de la console.
autant dire : ON N'UTILISE PAS ls DANS LES SCRIPTS !!! (je crie un petit peu parce que j'ai l'impression de le dire au moins une fois par semaine find ne s'occupe pas du format des noms des fichiers, il sort la liste de tous les fichiers. si tu veux que la copie/renommage laisse les chiffres, et n'enlève que - et _ : des espaces au début d'un nom de fichiers... je crois rêver... non, c'est un cauchemar ! ![]() après je ne sais pas. la substitution fonctionne bien pour moi : "$d" n'est pas repris dans "$dest"... ? |
|
|
00
|
|
|
#28 | ||
|
Membre du Club
![]() irwin Analyste d'exploitation Inscription : janvier 2012 Messages : 83 ![]() |
Citation:
Citation:
Pour la substitution je ne saurai trop dire je poste mes résultats car je ne déchiffre pas tout, mes lacunes en shell sont encore bien grandes. Après le problème majeur restant est la récupération du nom de fichier pour en faire un dossier. Quand je reprends un des scripts donnés plus haut je voie dest="./monDir... utilise tu un script secondaire ? Je n'ai pas bien saisie cette étape, mon problème viendrait peut être que je l'ai remplacer directement par les chemins où aller. J'ai testé un truc un peu cochon test -d "$dest" | xargs -d 'n' mkdir < liste via une liste de fichier tiré avec un ls -a hors script. Le résultat est pas très beau mais ça mène vers une piste, j'ai la créations de dossier construit avec des morceaux du noms original...Ça ressemble a rien en résultat du genre -__-02-__- mais ça puise les caractères dans le nom d'origine. |
||
|
|
00
|
|
|
#29 | ||||
![]() ![]() Inscription : février 2008 Messages : 2 747 ![]() |
Citation:
Citation:
Citation:
Citation:
tu veux bien détailler (avec des exemples, s'il te plaît.). mais, il faut vraiment que tu ouvres le man bash, pour y lire les paragraphes à propos du Développement des chemins et des Motifs génériques. |
||||
|
|
00
|
|
|
#30 | ||||
|
Membre du Club
![]() irwin Analyste d'exploitation Inscription : janvier 2012 Messages : 83 ![]() |
Je pense être sur la bonne voie après mon gros crachat à partir de la liste, en parlant de la substitution j'ai eu en idée de la mettre avant le "$dest" dans le xargsnouveau code:
Code :
Code :
Ensuite il cherche à créer le nom de dossier en y incluant en exemple ici le numéro de l’épisode (ayant aussi des numéros sur mes fichiers de traitements au travail le problème reste identique) hors je cherche à les exclure si possible. J'ai besoin de passé le nom de fichier en variable pour en faire un nom de dossier mais en excluant les chiffres. Cela pour avoir un dossier dans lequel, ensuite, tout les fichiers avec un nom identique (hors chiffres toujours) s'y copie. Mais tout en gardant les numéros dans le nom du fichier: Exemple: Fichier_beta%_123 => récupération du nom en variable pour en faire un dossier => fichier_beta Dans fichier_beta => on copie tout les fichiers nommés=> fichier_beta%_123 fichier_beta%12254... Sachant que mes noms de fichiers ne sont pas réellement fixe dans la syntaxe, donc je ne peux pas les inclure en variable manuellement. Il faut voir ça comme une variable dynamique... |
||||
|
|
00
|
|
|
#31 | ||
![]() ![]() Inscription : février 2008 Messages : 2 747 ![]() |
les test sur $d n'affiche aucune données le pipe ne sert à rien, et je me demande ce que traite (àmha inutile) xargs.
j'ai l'impression que les spécifications ont changé ... ? est-ce qu'il faut tenir compte du répertoire sous lequel se trouve les fichiers, sous $src? càd:find "$src" -type f va afficher Code :
|
||
|
|
00
|
|
|
#32 | ||||
|
Membre du Club
![]() irwin Analyste d'exploitation Inscription : janvier 2012 Messages : 83 ![]() |
j'ai expliqué les spécificités de la chose sur la première page déjà ^^"
disons que je test un peu en tout sens pour voir le résultat. Sachant que le script au final sera dans un dossier spécifique il serait plus convenable de tenir compte du répertoire où se trouveront les fichiers. Mais c'est le contenu qui intéresse. Code :
Code :
|
||||
|
|
00
|
|
|
#33 | ||||
![]() ![]() Inscription : février 2008 Messages : 2 747 ![]() |
donc, il faut ne pas tenir compte des répertoires intermédiaires: affiche
Code :
Code :
|
||||
|
|
10
|
|
|
#34 |
|
Membre du Club
![]() irwin Analyste d'exploitation Inscription : janvier 2012 Messages : 83 ![]() |
Voilà, ça se résume à ça ,en ignorant les numéros et extension pour le nom de dossier.
|
|
|
00
|
|
|
#35 |
![]() ![]() Inscription : février 2008 Messages : 2 747 ![]() |
c'est à dire ?
|
|
|
00
|
|
|
#36 | ||||
|
Membre du Club
![]() irwin Analyste d'exploitation Inscription : janvier 2012 Messages : 83 ![]() |
si on a les fichiers
Code :
Code :
pour le moments % ou - peuvent rester, je remplacerai tout au final par des underscore, plus beau pour les yeux et la lecture. |
||||
|
|
00
|
|
|
#37 | ||
![]() ![]() Inscription : février 2008 Messages : 2 747 ![]() |
pas très cohérent
Code :
|
||
|
|
00
|
|
|
#38 |
|
Membre du Club
![]() irwin Analyste d'exploitation Inscription : janvier 2012 Messages : 83 ![]() |
Je suis d'accord et c'est justement le soucis où m'a liste varie quotidiennement.
Je ne peux pas vraiment lister tout les fichiers que je dois traités dans un script sinon j'aurai pu le faire sans me prendre tant la tête. C'est presque avoir un script dynamique au final car je ne peux pas me baser sur du fixe pour cette automatisation, si ce n'est 4 choses: 1_l'endroit où les fichiers arrivent 2_où ils sont copier 3_quelle forme doit avoir le nom de dossier (nom du fichier sans chiffre) 4_copier et garder le nom des fichiers identiques tout en corrigeant les symboles potentiellement genant(% -) C'est un sacré cahier des charges
|
|
|
00
|
|
|
#39 |
![]() ![]() Inscription : février 2008 Messages : 2 747 ![]() |
c'est sans doute pas aussi terrible que ça.
Heureusement, il y a le Développement des chemins et les Motifs génériques. et si ça suffit pas (mais ça m'étonnerait), on trouvera bien une regex. |
|
|
00
|
|
|
#40 |
|
Membre du Club
![]() irwin Analyste d'exploitation Inscription : janvier 2012 Messages : 83 ![]() |
j'espère bien car ca m'apprendrai pas mal de choses supplémentaires sur le shell, et un script de se type pourra être une très bonne base pour des plus élaborés (que j'ai déjà +/- en tête) mais tout en gardant la fonction de base de celui ci.
Déjà réussir celui là sera d'une grande satisfaction pour moi. |
|
|
00
|
Copyright © 2000-2013 - www.developpez.com