#26 Le 15/11/2021, à 11:37
- Terminus78
Re : [Résolu] Script parcours arborescence pour renommage
Bonjour,
J'ai testé ta solution @MicP, mais il ne se passe strictement rien ... voici le retour du echo (extrait) :
mv /opt/application/98cas1/G05R00C00/talend/consolidation/TEST/SendTest/2021_11_02-16h_19_test/LM706561/LM706561--original--TV+and+Online+Intelligence+Database+-+November+2021.xlsx /opt/application/98cas1/G05R00C00/talend/consolidation/TEST/SendTest/2021_11_02-16h_19_test/LM706561/LM706561--original--TV and Online Intelligence Database - November 2021.xlsx
mv /opt/application/98cas1/G05R00C00/talend/consolidation/TEST/SendTest/2021_11_02-16h_19_test/LM706595/LM706595--original--TV+Media+Intelligence+Database+-+November+2021.xlsx /opt/application/98cas1/G05R00C00/talend/consolidation/TEST/SendTest/2021_11_02-16h_19_test/LM706595/LM706595--original--TV Media Intelligence Database - November 2021.xlsx
mv /opt/application/98cas1/G05R00C00/talend/consolidation/TEST/SendTest/2021_11_02-16h_19_test/LM711990/LM711990--original--World+Television+Information+Service+Forecasting+Tool+-+November+2021.xlsx /opt/application/98cas1/G05R00C00/talend/consolidation/TEST/SendTest/2021_11_02-16h_19_test/LM711990/LM711990--original--World Television Information Service Forecasting Tool - November 2021.xlsx
Hors ligne
#27 Le 15/11/2021, à 11:56
- MicP
Re : [Résolu] Script parcours arborescence pour renommage
Oui, l'extrait de script ne fait (pour le tester) qu'afficher la ligne de commande qui serait lancée,
mais pour que les lignes de commande mv soient lancées,
il faudra supprimer la commande echo
Donc, l'extrait de script deviendra :
for f in "$1"/*/*+*; do
chemin="${f%/*}"
nomFich="${f##*/}"
sansPlus="${nomFich//+/ }"
sansLM="${sansPlus//LM+([[:digit:]])--original--}"
mv "$f" "$chemin/$sansLM"
done
Dernière modification par MicP (Le 15/11/2021, à 11:59)
Hors ligne
#28 Le 15/11/2021, à 16:05
- Terminus78
Re : [Résolu] Script parcours arborescence pour renommage
Ok en effet, après avoir ôté le echo, le mv m'a bien retiré les +, les fichiers restent au bons endroits mais le "LM*--original--" est toujours présent
Hors ligne
#29 Le 15/11/2021, à 16:25
- MicP
Re : [Résolu] Script parcours arborescence pour renommage
Vérifie dans ton script s'il n'y a pas une erreur
dans la ligne d'affectation de la valeur à la variable sansLM
qui doit être formulée comme ci-dessous :
sansLM="${sansPlus//LM+([[:digit:]])--original--}"
Hors ligne
#30 Le 16/11/2021, à 11:17
- Terminus78
Re : [Résolu] Script parcours arborescence pour renommage
Re @MicP,
J'ai re-re vérifié mais non ...
J'ai bien la même chose que toi :
sansLM="${sansPlus//LM+([[:digit:]])--original--}"
De ton côté ça fonctionnait comme ça ?
Hors ligne
#31 Le 16/11/2021, à 11:25
- MicP
Re : [Résolu] Script parcours arborescence pour renommage
michel@ubu20043lts:~$ f="/opt/application/98cas1/G05R00C00/talend/consolidation/TEST/SendTest/2021_11_02-16h_19_test/LM711990/LM711990--original--World+Television+Information+Service+Forecasting+Tool+-+November+2021.xlsx"
michel@ubu20043lts:~$
michel@ubu20043lts:~$ echo $f
/opt/application/98cas1/G05R00C00/talend/consolidation/TEST/SendTest/2021_11_02-16h_19_test/LM711990/LM711990--original--World+Television+Information+Service+Forecasting+Tool+-+November+2021.xlsx
michel@ubu20043lts:~$
michel@ubu20043lts:~$ chemin="${f%/*}"; echo $chemin
/opt/application/98cas1/G05R00C00/talend/consolidation/TEST/SendTest/2021_11_02-16h_19_test/LM711990
michel@ubu20043lts:~$
michel@ubu20043lts:~$ nomFich="${f##*/}"; echo $nomFich
LM711990--original--World+Television+Information+Service+Forecasting+Tool+-+November+2021.xlsx
michel@ubu20043lts:~$
michel@ubu20043lts:~$ sansPlus="${nomFich//+/ }"; echo $sansPlus
LM711990--original--World Television Information Service Forecasting Tool - November 2021.xlsx
michel@ubu20043lts:~$
michel@ubu20043lts:~$ sansLM="${sansPlus//LM+([[:digit:]])--original--}"; echo $sansLM
World Television Information Service Forecasting Tool - November 2021.xlsx
michel@ubu20043lts:~$
michel@ubu20043lts:~$ echo "$chemin/$sansLM"
/opt/application/98cas1/G05R00C00/talend/consolidation/TEST/SendTest/2021_11_02-16h_19_test/LM711990/World Television Information Service Forecasting Tool - November 2021.xlsx
michel@ubu20043lts:~$
Dernière modification par MicP (Le 16/11/2021, à 11:31)
Hors ligne
#32 Le 16/11/2021, à 17:06
- Terminus78
Re : [Résolu] Script parcours arborescence pour renommage
Re, voici le retour que j'ai avec ce script :
shopt -s nullglob globstar;
for f in "$1"/*/*+*; do
chemin="${f%/*}"
nomFich="${f##*/}"
sansPlus="${nomFich//+/ }"
sansLM="${sansPlus//LM+([[:digit:]])--original--}"
#mv "$f" "$chemin/$sansLM"
echo "chemin = "$chemin
echo "nomFich ="$nomFich
echo "sansPlus ="$sansPlus
echo "sansLM = "$sansLM
echo mv "$f" "$chemin/$sansLM"
echo "______________________________________________/n"
done
Le retour donc (extrait) :
chemin = /opt/application/98cas1/G05R00C00/talend/consolidation/TEST/SendTest/2021_11_02-16h_19_test/LM720567
nomFich =LM720567--original--2022+Trends+to+Watch+Broadband+PDF.pdf
sansPlus =LM720567--original--2022 Trends to Watch Broadband PDF.pdf
sansLM = LM720567--original--2022 Trends to Watch Broadband PDF.pdf
mv /opt/application/98cas1/G05R00C00/talend/consolidation/TEST/SendTest/2021_11_02-16h_19_test/LM720567/LM720567--original--2022+Trends+to+Watch+Broadband+PDF.pdf /opt/application/98cas1/G05R00C00/talend/consolidation/TEST/SendTest/2021_11_02-16h_19_test/LM720567/LM720567--original--2022 Trends to Watch Broadband PDF.pdf
______________________________________________
chemin = /opt/application/98cas1/G05R00C00/talend/consolidation/TEST/SendTest/2021_11_02-16h_19_test/LM720567
nomFich =LM720567--original--2022+Trends+to+Watch+Broadband+PPT.pptx
sansPlus =LM720567--original--2022 Trends to Watch Broadband PPT.pptx
sansLM = LM720567--original--2022 Trends to Watch Broadband PPT.pptx
mv /opt/application/98cas1/G05R00C00/talend/consolidation/TEST/SendTest/2021_11_02-16h_19_test/LM720567/LM720567--original--2022+Trends+to+Watch+Broadband+PPT.pptx /opt/application/98cas1/G05R00C00/talend/consolidation/TEST/SendTest/2021_11_02-16h_19_test/LM720567/LM720567--original--2022 Trends to Watch Broadband PPT.pptx
______________________________________________
Hors ligne
#33 Le 16/11/2021, à 22:36
- MicP
Re : [Résolu] Script parcours arborescence pour renommage
Désolé, je n'arrive pas à comprendre pourquoi ça ne fonctionne pas sur ton système,
voilà ce que donnent tes lignes de commandes sur mon système :
michel@debbull:~$ cat aefffScr
f="/opt/cheminBLABLA_test/LM720567/LM720567--original--2022+Trends+to+Watch+Broadband+PDF.pdf"
chemin="${f%/*}"
nomFich="${f##*/}"
sansPlus="${nomFich//+/ }"
sansLM="${sansPlus//LM+([[:digit:]])--original--}"
#mv "$f" "$chemin/$sansLM"
echo "chemin = "$chemin
echo "nomFich = "$nomFich
echo "sansPlus = "$sansPlus
echo "sansLM = "$sansLM
echo mv "$f" "$chemin/$sansLM"
michel@debbull:~$
michel@debbull:~$ source aefffScr
chemin = /opt/cheminBLABLA_test/LM720567
nomFich = LM720567--original--2022+Trends+to+Watch+Broadband+PDF.pdf
sansPlus = LM720567--original--2022 Trends to Watch Broadband PDF.pdf
sansLM = 2022 Trends to Watch Broadband PDF.pdf
mv /opt/cheminBLABLA_test/LM720567/LM720567--original--2022+Trends+to+Watch+Broadband+PDF.pdf /opt/cheminBLABLA_test/LM720567/2022 Trends to Watch Broadband PDF.pdf
michel@debbull:~$
=======
Ce sera un peu moins sélectif,
mais essaye en remplaçant la ligne :
sansLM="${sansPlus//LM+([[:digit:]])--original--}"
par
sansLM="${sansPlus//LM*--original--}"
Dernière modification par MicP (Le 17/11/2021, à 15:22)
Hors ligne
#34 Le 17/11/2021, à 11:18
- Terminus78
Re : [Résolu] Script parcours arborescence pour renommage
Bah effectivement je ne comprends pas pourquoi ...
J'avais déja essayé avec le * à la place du "digit" mais ça me donne exactement le même résultat ...
La vraiment je suis largué
En tout cas merci bcp pour ton aide !
Hors ligne
#35 Le 17/11/2021, à 20:09
- kamaris
Re : [Résolu] Script parcours arborescence pour renommage
Je pense qu'il faut ajouter
shopt -s extglob
Sourcer un script dans un environnement où extglob est actif est différent d'exécuter ce script (implicitement : dans son propre environnement).
Dernière modification par kamaris (Le 17/11/2021, à 20:11)
Hors ligne
#36 Le 17/11/2021, à 21:12
- MicP
Re : [Résolu] Script parcours arborescence pour renommage
Effectivement, si l'option extglob est désactivée,
il vaudra mieux utiliser :
sansLM="${sansPlus//LM*--original--}"
Sans extglob :
michel@debbull:~$ shopt -u extglob; shopt extglob
extglob off
michel@debbull:~$
michel@debbull:~$ sansPlus="${nomFich//+/ }"; echo $sansPlus
LM720567--original--2022 Trends to Watch Broadband PDF.pdf
michel@debbull:~$
michel@debbull:~$ sansLM="${sansPlus//LM+([[:digit:]])--original--}"; echo $sansLM
LM720567--original--2022 Trends to Watch Broadband PDF.pdf
michel@debbull:~$ ### ça n'a pas fonctionné ###
michel@debbull:~$
michel@debbull:~$ ### mais c'est OK ci-dessous ###
michel@debbull:~$ sansLM="${sansPlus//LM*--original--}"; echo $sansLM
2022 Trends to Watch Broadband PDF.pdf
michel@debbull:~$
Avec extglob :
michel@debbull:~$ shopt -s extglob; shopt extglob
extglob on
michel@debbull:~$
michel@debbull:~$ sansLM="${sansPlus//LM+([[:digit:]])--original--}"; echo $sansLM
2022 Trends to Watch Broadband PDF.pdf
michel@debbull:~$
=======
Par défaut, sur Debian et Ubuntu
extglob est activé.
Dernière modification par MicP (Le 17/11/2021, à 21:22)
Hors ligne
#37 Le 18/11/2021, à 16:13
- Terminus78
Re : [Résolu] Script parcours arborescence pour renommage
Bonjour,
Merci effectivement c'était ça le petit soucis bien vu
Merci encore pour votre aide !
Hors ligne