script bash

Le
Steve
Bonjour,

J'aurai bespoin de vos conseils.

J'aun un backup qui s'est mal déroulé et pas mal de mes fichiers, sont
devenus invisibles
En fait, un fichier nommé : toto.txt est devenu toto.txt~
ils ont l'air d'être tous correct si renommé, le fichier s'ouvre
correctememnt.

Y aurait il un script qui me permet de renommer tous les fichiers finissant
pas "~" et .. de supprimer ce "~" à la fin de mon fichier ?

Merci d'avance
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Sergio
Le #25414862
Le Sun, 19 May 2013 07:12:00 +0200, Steve a écrit :

Bonjour,

J'aurai bespoin de vos conseils.

J'aun un backup qui s'est mal déroulé et pas mal de mes fichiers, sont
devenus invisibles...
En fait, un fichier nommé : toto.txt est devenu toto.txt~
ils ont l'air d'être tous correct si renommé, le fichier s'ouvre
correctememnt.

Y aurait il un script qui me permet de renommer tous les fichiers
finissant pas "~" et .. de supprimer ce "~" à la fin de mon fichier ?



rename 's/~$//' *~
Benoit Izac
Le #25414892
Bonjour,

le 19/05/2013 à 07:12, Steve a écrit dans le message

J'aun un backup qui s'est mal déroulé et pas mal de mes fichiers, sont
devenus invisibles...
En fait, un fichier nommé : toto.txt est devenu toto.txt~
ils ont l'air d'être tous correct si renommé, le fichier s'ouvre
correctememnt.

Y aurait il un script qui me permet de renommer tous les fichiers
finissant pas "~" et .. de supprimer ce "~" à la fin de mon fichier ?



Pour renommer tous les fichiers présents dans le dossier où tu te
trouves et ses sous-dossiers et dont le nom de fichier se termine par
'~' (si tes noms de fichiers ne comportent pas de retour à la ligne) :

find . -name '*~' | (IFS='n'; while read -r f; do mv "$f" "${f%*~}"; done)

Tu peux remplacer « do mv » par « do echo mv » dans un premier temps
afin de vérifier que ça correspond à ce que tu veux faire.

--
Benoit Izac
Steve
Le #25415392
Benoit Izac wrote:

find . -name '*~' | (IFS='n'; while read -r f; do mv "$f" "${f%*~}";
done)




Boujour les gars;

Apparemment,

find . -name '*~' | (IFS='n'; while read -r f; do mv "$f" "${f%*~}"; done)
a bien marché...
rename 's/~$//' *~ ça n'a pas l'air d'avoir fonctionné.. et je ne sais
pas pourquoi :-(

Merci à tous les deux !!
Nicolas Richard
Le #25416172
Steve
find . -name '*~' | (IFS='n'; while read -r f; do mv "$f" "${f%*~}"; d one)
a bien marché...



C'est quand même moche comme commande.

rename 's/~$//' *~ ça n'a pas l'air d'avoir fonctionné.. e t je ne sais
pas pourquoi :-(



Il y a plusieurs programmes "rename" qui traînent. "man rename" pour
voir quelles sont les options offertes par la version sur ton système.

N.
Benoit Izac
Le #25416522
Bonjour,

le 19/05/2013 à 22:05, Nicolas Richard a écrit dans le message

find . -name '*~' | (IFS='n'; while read -r f; do mv "$f" "${f%*~}"; done)
a bien marché...



C'est quand même moche comme commande.

rename 's/~$//' *~ ça n'a pas l'air d'avoir fonctionné.. et je ne sais
pas pourquoi :-(



Il y a plusieurs programmes "rename" qui traînent. "man rename" pour
voir quelles sont les options offertes par la version sur ton système.



C'est toute la différence entre une commande "moche" mais standard et
une autre, aussi belle soit-elle, non standard.

À noter que les deux commandes ne sont pas strictement équivalentes ;
pour faire la même chose que « rename 's/~$//' *~ » ce serait plutôt :
for f in *~; do mv -- "$f" "${f%*~}"; done

Mais tant qu'à faire du non standard, je préfère zsh :
zmv '(*)~' '$1'

--
Benoit Izac
yamo'
Le #25417052
Salut,

Steve a tapoté, le 19/05/2013 14:22:
rename 's/~$//' *~ ça n'a pas l'air d'avoir fonctionné.. et je ne sais
pas pourquoi :-(



Il faut se placer là où tes fichiers sont mais, il n'est pas récursif.

$ mkdir /tmp/test
$ touch /tmp/test1~ /tmp/test/test2~
$ ls /tmp/*~
/tmp/test~ /tmp/test1~
$ cd /tmp/
$ rename 's/~$//' *~ -nv # v pour verbose et n pour no act
test~ not renamed: test already exists
test1~ renamed as test1




--
Stéphane BOFH excuse #317:

Internet exceeded Luser level, please wait until a luser logs off before
attempting to log back on.
ulysse2k Absent
Le #25417642
Le dimanche 19 Mai 2013 à 07:12 par Steve :
Bonjour,

J'aurai bespoin de vos conseils.

J'aun un backup qui s'est mal déroulé et pas mal de mes fichiers,
sont
devenus invisibles...
En fait, un fichier nommé : toto.txt est devenu toto.txt~
ils ont l'air d'être tous correct si renommé, le fichier s'ouvre
correctememnt.

Y aurait il un script qui me permet de renommer tous les fichiers finissant
pas "~" et .. de supprimer ce "~" à la fin de mon
fichier ?

Merci d'avance


Tu te positionnes dans le répertoire de l'utilisateur (~)

find . -name "*~"-exec rm -rf {} ;

Il va trouver tous les fichiers se terminant pas ~ et les supprimer (et c'est récursif) ;)
Erwan David
Le #25417712
ulysse2k
Le dimanche 19 Mai 2013 à 07:12 par Steve :
Bonjour,

J'aurai bespoin de vos conseils.

J'aun un backup qui s'est mal déroulé et pas mal de mes fichiers,
sont
devenus invisibles...
En fait, un fichier nommé : toto.txt est devenu toto.txt~
ils ont l'air d'être tous correct si renommé, le fichier s'ouvre
correctememnt.

Y aurait il un script qui me permet de renommer tous les fichiers finissant
pas "~" et .. de supprimer ce "~" à la fin de mon
fichier ?

Merci d'avance


Tu te positionnes dans le répertoire de l'utilisateur (~)

find . -name "*~"-exec rm -rf {} ;

Il va trouver tous les fichiers se terminant pas ~ et les supprimer (et c'est
récursif) ;)



Le posteur veut les *renommer* pas les supprimer !

--
Les simplifications c'est trop compliqué
ST
Le #25419252
On 2013-05-20, Erwan David
ulysse2k
Y aurait il un script qui me permet de renommer tous les fichiers finissant
pas "~" et .. de supprimer ce "~" à la fin de mon
fichier ?

Merci d'avance


Tu te positionnes dans le répertoire de l'utilisateur (~)

find . -name "*~"-exec rm -rf {} ;





for i in `find . -name "*~"` ; do mv $i `echo $i | sed -e 's/~$//'` ; done
Benoit Izac
Le #25420472
Bonjour,

le 21/05/2013 à 02:34, ST
Y aurait il un script qui me permet de renommer tous les fichiers
finissant pas "~" et .. de supprimer ce "~" à la fin de mon
fichier ?

Merci d'avance


Tu te positionnes dans le répertoire de l'utilisateur (~)

find . -name "*~"-exec rm -rf {} ;





for i in `find . -name "*~"` ; do mv $i `echo $i | sed -e 's/~$//'` ; done



% touch "a b~"
% for i in `find . -name "*~"` ; do mv $i `echo $i | sed -e 's/~$//'` ; done
mv: cannot stat ‘./a’: No such file or directory
mv: cannot stat ‘b~’: No such file or directory

--
Benoit Izac
Publicité
Poster une réponse
Anonyme