J'aimerais renomer l'ensemble des fichiers de ce jour : remplacer la
chaine "__" en "_20051212_"
J'ai essayé en vain :
find . -ctime 0 -exec mv {} 'echo {} | sed "/__/s//_20051212_/"' \;
j ai également essayé de passer par des trucs du genre
for i in *; ...
Penser à la commande "rename" fournie avec perl. Moins portable, mais très pratique.
Sinon, c'est la syntaxe de ton sed qui n'est pas bonne :
s/__/_20051212_/
-- Matthieu
Emmanuel Fleury
Salut,
chmanu wrote:
J'aimerais renomer l'ensemble des fichiers de ce jour : remplacer la chaine "__" en "_20051212_" J'ai essayé en vain : find . -ctime 0 -exec mv {} 'echo {} | sed "/__/s//_20051212_/"' ;
j ai également essayé de passer par des trucs du genre for i in *; ...
Est-ce que ça marche ça:
for file in __*; do mv $file _20051212_${file##__}; done
Amicalement -- Emmanuel Fleury
Ars longa, vita brevis. -- Hippocrate
Salut,
chmanu wrote:
J'aimerais renomer l'ensemble des fichiers de ce jour : remplacer la
chaine "__" en "_20051212_"
J'ai essayé en vain :
find . -ctime 0 -exec mv {} 'echo {} | sed "/__/s//_20051212_/"' ;
j ai également essayé de passer par des trucs du genre
for i in *; ...
Est-ce que ça marche ça:
for file in __*; do mv $file _20051212_${file##__}; done
J'aimerais renomer l'ensemble des fichiers de ce jour : remplacer la chaine "__" en "_20051212_" J'ai essayé en vain : find . -ctime 0 -exec mv {} 'echo {} | sed "/__/s//_20051212_/"' ;
j ai également essayé de passer par des trucs du genre for i in *; ...
Est-ce que ça marche ça:
for file in __*; do mv $file _20051212_${file##__}; done
Amicalement -- Emmanuel Fleury
Ars longa, vita brevis. -- Hippocrate
Emmanuel Fleury
Emmanuel Fleury wrote:
Est-ce que ça marche ça:
for file in __*; do mv $file _20051212_${file##__}; done
Au passage, si quelqu'un pouvait m'expliquer la différence entre ${file##__} et ${file#_} je lui en serai éternellement reconnaissant.
Amicalement -- Emmanuel Fleury
A journey of a thousand miles must begin with a single step. -- Lao Tzu
Emmanuel Fleury wrote:
Est-ce que ça marche ça:
for file in __*; do mv $file _20051212_${file##__}; done
Au passage, si quelqu'un pouvait m'expliquer la différence entre
${file##__} et ${file#_} je lui en serai éternellement reconnaissant.
Amicalement
--
Emmanuel Fleury
A journey of a thousand miles must begin with a single step.
-- Lao Tzu
Enfin en fait, je te conseilles plutôt la formulation :
-print0 | xargs -0 sh -c 'for f in "$@"; do mv "$f" "`sed s/__/_20051212_/ <<EOF $f EOF `" done' ploum
lhabert
Emmanuel Fleury :
Au passage, si quelqu'un pouvait m'expliquer la différence entre ${file##__} et ${file#_} je lui en serai éternellement reconnaissant.
Je supposes que tu veux dire « ${file#__} » pour le deuxième?
En l'occurence, il n'y a pas de différence parce que le motif que tu mets ne peut matcher que des chaines de taille fixe, mais si tu mets des étoiles dans le motif, ça va faire une différence. Avec ##, tu sélectionnes le plus long prefixe qui matche, tandis qu'avec #, tu sélectionnes le plus court.
Emmanuel Fleury :
Au passage, si quelqu'un pouvait m'expliquer la différence entre
${file##__} et ${file#_} je lui en serai éternellement reconnaissant.
Je supposes que tu veux dire « ${file#__} » pour le deuxième?
En l'occurence, il n'y a pas de différence parce que le motif que tu mets ne
peut matcher que des chaines de taille fixe, mais si tu mets des étoiles
dans le motif, ça va faire une différence. Avec ##, tu sélectionnes le plus
long prefixe qui matche, tandis qu'avec #, tu sélectionnes le plus court.
Au passage, si quelqu'un pouvait m'expliquer la différence entre ${file##__} et ${file#_} je lui en serai éternellement reconnaissant.
Je supposes que tu veux dire « ${file#__} » pour le deuxième?
En l'occurence, il n'y a pas de différence parce que le motif que tu mets ne peut matcher que des chaines de taille fixe, mais si tu mets des étoiles dans le motif, ça va faire une différence. Avec ##, tu sélectionnes le plus long prefixe qui matche, tandis qu'avec #, tu sélectionnes le plus court.
Emmanuel Fleury
Luc Habert wrote:
Je supposes que tu veux dire « ${file#__} » pour le deuxième?
Oui. J'ai fait une faute de frappe.
En l'occurence, il n'y a pas de différence parce que le motif que tu mets ne peut matcher que des chaines de taille fixe, mais si tu mets des étoiles dans le motif, ça va faire une différence. Avec ##, tu sélectionnes le plus long prefixe qui matche, tandis qu'avec #, tu sélectionnes le plus court.
Aaaaah ! Ok.
Merci ! Je vais me coucher moins bête ce soir.
Amicalement -- Emmanuel Fleury
`My doctor says that I have a malformed public-duty gland and a natural deficiency in moral fibre, and that I am therefore excused from saving Universes.' -- Ford last attempt to get out of the story (Douglas Adams)
Luc Habert wrote:
Je supposes que tu veux dire « ${file#__} » pour le deuxième?
Oui. J'ai fait une faute de frappe.
En l'occurence, il n'y a pas de différence parce que le motif que tu mets ne
peut matcher que des chaines de taille fixe, mais si tu mets des étoiles
dans le motif, ça va faire une différence. Avec ##, tu sélectionnes le plus
long prefixe qui matche, tandis qu'avec #, tu sélectionnes le plus court.
Aaaaah ! Ok.
Merci ! Je vais me coucher moins bête ce soir.
Amicalement
--
Emmanuel Fleury
`My doctor says that I have a malformed public-duty gland and
a natural deficiency in moral fibre, and that I am therefore
excused from saving Universes.'
-- Ford last attempt to get out of the story (Douglas Adams)
Je supposes que tu veux dire « ${file#__} » pour le deuxième?
Oui. J'ai fait une faute de frappe.
En l'occurence, il n'y a pas de différence parce que le motif que tu mets ne peut matcher que des chaines de taille fixe, mais si tu mets des étoiles dans le motif, ça va faire une différence. Avec ##, tu sélectionnes le plus long prefixe qui matche, tandis qu'avec #, tu sélectionnes le plus court.
Aaaaah ! Ok.
Merci ! Je vais me coucher moins bête ce soir.
Amicalement -- Emmanuel Fleury
`My doctor says that I have a malformed public-duty gland and a natural deficiency in moral fibre, and that I am therefore excused from saving Universes.' -- Ford last attempt to get out of the story (Douglas Adams)