Shell renommer des fichiers avec des conditions

Fermé
hergo666 Messages postés 2 Date d'inscription jeudi 29 novembre 2012 Statut Membre Dernière intervention 29 novembre 2012 - 29 nov. 2012 à 22:03
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 - 29 nov. 2012 à 23:55
Bonjour,

J'ai une liste par exemple de fichiers :

text round01.txt
text round02.txt
text round03.txt
text round04.txt

Je voudrai les renommer à la voler par en :

round01.txt
round02.txt
round03.txt
round04.txt

Je voudrai utiliser le fait qu'il y a un espace et prendre uniquement le texte derrière.

Pour débuger j'ai fais cela :
for var in *;
do mod=$var|cut -d\  -f 2; 
echo "Variable Originale : $var";
echo "Variable Modifiée: $mod" ;
done

Sauf que $mod est toujours vide, pourquoi ?

Si je fais un echo sur :
echo mod=$var|cut -d\  -f 2
mon fichier est bien renommé comme je le veux.

J'ai aussi essayé :
export mod=$var|cut -d\  -f 2
Ca ne fonctionne pas non plus.


Au final je voulais faire cela :

for var in *;do mod=$var|cut -d\  -f 2; mv "$var" $mod ;done


Mais tant que je n'ai pas résolu le fait que $mod est vide, le renommage ne fonctionne pas.


Merci pour votre aide.


A voir également:

3 réponses

hergo666 Messages postés 2 Date d'inscription jeudi 29 novembre 2012 Statut Membre Dernière intervention 29 novembre 2012
29 nov. 2012 à 22:18
J'ai trouvé :

for var in *;do mv "$var" "$(echo $var|cut -d\  -f 2)" ;done




Merci ;)
0
Swiss Knight Messages postés 1956 Date d'inscription samedi 22 novembre 2008 Statut Membre Dernière intervention 27 juillet 2016 110
29 nov. 2012 à 23:07
Salut.
T'as essayé thunar ?
0
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 411
29 nov. 2012 à 23:55
Salut,

Pas la peine de "cut" ni de "pipe", le développement des paramètres suffit :
$ var="text round01.txt"

$ echo ${var}
text round01.txt

$ echo ${var#* }
round01.txt


Sinon, avec "rename" (enlever le "-n" si concluant) :
$ touch "text round01.txt"

$ rename -n 's/.* //' *.txt
text round01.txt renamed as round01.txt

0