Shell renommer des fichiers avec des conditions

hergo666 Messages postés 2 Date d'inscription   Statut Membre Dernière intervention   -  
zipe31 Messages postés 36402 Date d'inscription   Statut Contributeur Dernière intervention   -
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   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention   110
 
Salut.
T'as essayé thunar ?
0
zipe31 Messages postés 36402 Date d'inscription   Statut Contributeur Dernière intervention   6 431
 
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