j'ai écrit un petit script shell basé sur un exemple que je trouve ici: https://bbs.archlinux.org/viewtopic.php?id=36305Shell script pour renommer les fichiers
prend ceci:
bash-3.2$ ls
test 001 test 002 test 003 test 004
et il se transforme en:
bash-3.2$ ls
001 002 003 004 rename.sh
Cependant, il me donne cette erreur (même si cela fonctionne):
bash-3.2$ ./rename.sh
mv: missing destination file operand after `rename.sh'
Try `mv --help' for more information.
`test 001' -> `001'
`test 002' -> `002'
`test 003' -> `003'
`test 004' -> `004'
Bien que cela fonctionne correctement, il serait bon de voir où j'ai foiré, j'ai supposé par défaut qu'il mettrait les fichiers dans le même répertoire (c'est la sortie désirée).
#!/bin/bash
ls | while read -r FILE
do
mv -v "$FILE" `echo $FILE | awk -F ' ' '{print $2}'`
done
Merci d'avance de m'avoir aidé à corriger mon code incorrect.
et une solution consiste à ne faire que les fichiers qui incluent un espace: 'ls * '' * | '... – ysth
Merci cela fait tellement de sens maintenant! – eddylol
Désolé je suis allé sur une tangente, donc supprimé ma réponse :) – PostMan