Re: HS renommage en masse (expressions régulières)

2019-07-20 Par sujet Samuel Cifuentes-Favini
J'avais rectifié. Merci encore
Le 19 juil. 2019 16:29, "Stephane Ascoet" 
a écrit :

> Le 18/07/2019 à 16:37, Alexandre Goethals a écrit :
>
>> Avec rename:
>>
>>  ~$ ls
>> titiAA2019
>>
>> ~$ rename 's/^(.*)(.{6})/$1-$2/' titiAA2019
>>
>>  ~$ ls
>> titi-AA2019
>>
>> L'idée est la suivante:
>>
>> Faire deux groupes de capture:
>>
>> ^(.*) => correspond à n'importe quel caractère présent n'importe quel
>> nombre de fois (y compris 0) au début de la chaîne. Il s'agit du groupe
>> de capture n°1
>>
>> .{6} => correspond à une chaîne de 6 caractères quelconques. C'est le
>> groupe de capture n°2
>>
>> On renomme toute la chaîne en "groupe de capture n°2"-"groupe de capture
>> n°1"
>>
>
> Bonjour, du coup, faire plutot un "rename 's/^(.*)(.{6})/$2-$1/'" ;-)
>
> Au passage, au sujet de  es/2019/find_storage_node.html>, je connais depuis longtemps ce site que
> je ne trouve pas du tout didactique, et on sent bien que c'est un
> francophone qui ecrit en Anglais :-) L'auteur est Simon Descarpentries, un
> grand militant que je connais ;-)
> Et je n'ai pas inxi sur ma Devuan...
> --
> Cordialement, Stephane Ascoet
>
>


Re: HS renommage en masse (expressions régulières)

2019-07-19 Par sujet Stephane Ascoet

Le 18/07/2019 à 16:37, Alexandre Goethals a écrit :

Avec rename:

 ~$ ls
titiAA2019

~$ rename 's/^(.*)(.{6})/$1-$2/' titiAA2019

 ~$ ls
titi-AA2019

L'idée est la suivante:

Faire deux groupes de capture:

^(.*) => correspond à n'importe quel caractère présent n'importe quel
nombre de fois (y compris 0) au début de la chaîne. Il s'agit du groupe
de capture n°1

.{6} => correspond à une chaîne de 6 caractères quelconques. C'est le
groupe de capture n°2

On renomme toute la chaîne en "groupe de capture n°2"-"groupe de capture
n°1"


Bonjour, du coup, faire plutot un "rename 's/^(.*)(.{6})/$2-$1/'" ;-)

Au passage, au sujet de 
, je 
connais depuis longtemps ce site que je ne trouve pas du tout 
didactique, et on sent bien que c'est un francophone qui ecrit en 
Anglais :-) L'auteur est Simon Descarpentries, un grand militant que je 
connais ;-)

Et je n'ai pas inxi sur ma Devuan...
--
Cordialement, Stephane Ascoet



Re: HS renommage en masse (expressions régulières)

2019-07-18 Par sujet Bruno Volpi

petit logiciel sympa pour ce genre de chose PYremaner

Le 18/07/2019 à 12:45, Alexandre Goethals a écrit :

Bonjour,

la commande rename fournie par le paquet du même nom permet de renommer
en masse des fichiers en utilisant des regex perl (avec option -n pour
simuler le renommage)

Il faut utiliser des groupes de capture pour le renommage. A mon avis
pour simplifier la tâche, si possible, séparer les fichiers dans des
répertoires différents selon leur schéma de nommage permet de se
contenter de regex un peu moins compliquées.

Le 18/07/2019 à 12:17, Samuel Cifuentes a écrit :

Salut

je dois "nettoyer" un ensemble de fichiers dont les noms ressemblent à
ceci

2019 toto   (2019/espace/toto)

2018 titi

2019 titi

tititoto (2018)

titi (2019)

toto (2017)   etc.

par ailleurs, certains des contenus des parenthèses ne sont pas
seulement des chiffres par exemple "toto (jan 2019)"

j'ai déjà effectué un gros travail de tri et de dédoublonnage donc il
ne devrait plus y avoir de fichier à contenu identique dans cet
ensemble de répertoires mais je sèche sur l'étape suivante:

je souhaite renommer en masse tous les fichiers selon le schéma suivant :

-titi  , -toto etc.

par exemple  "toto (jan 2019)"
toto/espace/parenthèse/contenu-de-la-parenthèse/parenthèse devrait
être renommé en "2019-toto"

en récupérant donc le contenu NUMERIQUE exclusivement des parenthèses
figurant dans le nom de *certains* fichiers ,  en virant l'espace de
fin et en ajoutant un tiret plutôt qu'une espace entre le contenu de
la parenthèse (qui donc se trouvera au début du nom) et la suite du
nom de fichier.

j'ai su faire ça il y a trés longtemps avec awk mais là je bute sur le
fait que les noms de fichiers n'ont pas tous le même nombre de caractères


pourriez-vous m'aider ?

Sam





--
logogite*Roseline & Bruno Volpi**
**Chaillac**
**19450 Chamboulive*

F: 05 55 21 27 57
M: 06 78 07 40 27

web : http://www.brunovolpi.com/gites



Re: HS renommage en masse (expressions régulières)

2019-07-18 Par sujet Alexandre Goethals
Avec rename:

 ~$ ls
titiAA2019

~$ rename 's/^(.*)(.{6})/$1-$2/' titiAA2019

 ~$ ls
titi-AA2019

L'idée est la suivante:

Faire deux groupes de capture:

^(.*) => correspond à n'importe quel caractère présent n'importe quel
nombre de fois (y compris 0) au début de la chaîne. Il s'agit du groupe
de capture n°1

.{6} => correspond à une chaîne de 6 caractères quelconques. C'est le
groupe de capture n°2

On renomme toute la chaîne en "groupe de capture n°2"-"groupe de capture
n°1"


Le 18/07/2019 à 16:09, Samuel Cifuentes a écrit :
> j'ai pas mal avancé à grands coups de gprename mais je bute encore
>
> ma question est désormais beaucoup plus simple :
>
> je désire prendre les 6 derniers caractères du nom d'un fichier (qui
> sont desormais trois lettres et des chiffres)
>
> et les coller simplement au début du nom de ce meme fichier
>
> titiAAA2019  deviendrait donc AAA2019-titi
>
> quelle est donc la regex pour faire ça ?
>
>
>
> Le 18/07/2019 à 12:45, Alexandre Goethals a écrit :
>> Bonjour,
>>
>> la commande rename fournie par le paquet du même nom permet de renommer
>> en masse des fichiers en utilisant des regex perl (avec option -n pour
>> simuler le renommage)
>>
>> Il faut utiliser des groupes de capture pour le renommage. A mon avis
>> pour simplifier la tâche, si possible, séparer les fichiers dans des
>> répertoires différents selon leur schéma de nommage permet de se
>> contenter de regex un peu moins compliquées.
>>
>> Le 18/07/2019 à 12:17, Samuel Cifuentes a écrit :
>>> Salut
>>>
>>> je dois "nettoyer" un ensemble de fichiers dont les noms ressemblent à
>>> ceci
>>>
>>> 2019 toto   (2019/espace/toto)
>>>
>>> 2018 titi
>>>
>>> 2019 titi
>>>
>>> tititoto (2018)
>>>
>>> titi (2019)
>>>
>>> toto (2017)   etc.
>>>
>>> par ailleurs, certains des contenus des parenthèses ne sont pas
>>> seulement des chiffres par exemple "toto (jan 2019)"
>>>
>>> j'ai déjà effectué un gros travail de tri et de dédoublonnage donc il
>>> ne devrait plus y avoir de fichier à contenu identique dans cet
>>> ensemble de répertoires mais je sèche sur l'étape suivante:
>>>
>>> je souhaite renommer en masse tous les fichiers selon le schéma
>>> suivant :
>>>
>>> -titi  , -toto etc.
>>>
>>> par exemple  "toto (jan 2019)"
>>> toto/espace/parenthèse/contenu-de-la-parenthèse/parenthèse devrait
>>> être renommé en "2019-toto"
>>>
>>> en récupérant donc le contenu NUMERIQUE exclusivement des parenthèses
>>> figurant dans le nom de *certains* fichiers ,  en virant l'espace de
>>> fin et en ajoutant un tiret plutôt qu'une espace entre le contenu de
>>> la parenthèse (qui donc se trouvera au début du nom) et la suite du
>>> nom de fichier.
>>>
>>> j'ai su faire ça il y a trés longtemps avec awk mais là je bute sur le
>>> fait que les noms de fichiers n'ont pas tous le même nombre de
>>> caractères
>>>
>>>
>>> pourriez-vous m'aider ?
>>>
>>> Sam
>>>
>>>
>



Re: HS renommage en masse (expressions régulières)

2019-07-18 Par sujet Samuel Cifuentes

j'ai pas mal avancé à grands coups de gprename mais je bute encore

ma question est désormais beaucoup plus simple :

je désire prendre les 6 derniers caractères du nom d'un fichier (qui 
sont desormais trois lettres et des chiffres)


et les coller simplement au début du nom de ce meme fichier

titiAAA2019  deviendrait donc AAA2019-titi

quelle est donc la regex pour faire ça ?



Le 18/07/2019 à 12:45, Alexandre Goethals a écrit :

Bonjour,

la commande rename fournie par le paquet du même nom permet de renommer
en masse des fichiers en utilisant des regex perl (avec option -n pour
simuler le renommage)

Il faut utiliser des groupes de capture pour le renommage. A mon avis
pour simplifier la tâche, si possible, séparer les fichiers dans des
répertoires différents selon leur schéma de nommage permet de se
contenter de regex un peu moins compliquées.

Le 18/07/2019 à 12:17, Samuel Cifuentes a écrit :

Salut

je dois "nettoyer" un ensemble de fichiers dont les noms ressemblent à
ceci

2019 toto   (2019/espace/toto)

2018 titi

2019 titi

tititoto (2018)

titi (2019)

toto (2017)   etc.

par ailleurs, certains des contenus des parenthèses ne sont pas
seulement des chiffres par exemple "toto (jan 2019)"

j'ai déjà effectué un gros travail de tri et de dédoublonnage donc il
ne devrait plus y avoir de fichier à contenu identique dans cet
ensemble de répertoires mais je sèche sur l'étape suivante:

je souhaite renommer en masse tous les fichiers selon le schéma suivant :

-titi  , -toto etc.

par exemple  "toto (jan 2019)"
toto/espace/parenthèse/contenu-de-la-parenthèse/parenthèse devrait
être renommé en "2019-toto"

en récupérant donc le contenu NUMERIQUE exclusivement des parenthèses
figurant dans le nom de *certains* fichiers ,  en virant l'espace de
fin et en ajoutant un tiret plutôt qu'une espace entre le contenu de
la parenthèse (qui donc se trouvera au début du nom) et la suite du
nom de fichier.

j'ai su faire ça il y a trés longtemps avec awk mais là je bute sur le
fait que les noms de fichiers n'ont pas tous le même nombre de caractères


pourriez-vous m'aider ?

Sam






Re: HS renommage en masse (expressions régulières)

2019-07-18 Par sujet Bernard Schoenacker



- Mail original -
> De: "Alexandre Goethals" 
> À: debian-user-french@lists.debian.org
> Envoyé: Jeudi 18 Juillet 2019 12:45:59
> Objet: Re: HS renommage en masse (expressions régulières)
> 
> Bonjour,
> 
> la commande rename fournie par le paquet du même nom permet de
> renommer
> en masse des fichiers en utilisant des regex perl (avec option -n
> pour
> simuler le renommage)
> 
> Il faut utiliser des groupes de capture pour le renommage. A mon avis
> pour simplifier la tâche, si possible, séparer les fichiers dans des
> répertoires différents selon leur schéma de nommage permet de se
> contenter de regex un peu moins compliquées.

bonjour,

serait il possible d'utiliser le paquet detox ?

merci 
slt
bernard



Re: HS renommage en masse (expressions régulières)

2019-07-18 Par sujet Alexandre Goethals
Bonjour,

la commande rename fournie par le paquet du même nom permet de renommer
en masse des fichiers en utilisant des regex perl (avec option -n pour
simuler le renommage)

Il faut utiliser des groupes de capture pour le renommage. A mon avis
pour simplifier la tâche, si possible, séparer les fichiers dans des
répertoires différents selon leur schéma de nommage permet de se
contenter de regex un peu moins compliquées.

Le 18/07/2019 à 12:17, Samuel Cifuentes a écrit :
> Salut
>
> je dois "nettoyer" un ensemble de fichiers dont les noms ressemblent à
> ceci
>
> 2019 toto   (2019/espace/toto)
>
> 2018 titi
>
> 2019 titi
>
> tititoto (2018)
>
> titi (2019)
>
> toto (2017)   etc.
>
> par ailleurs, certains des contenus des parenthèses ne sont pas
> seulement des chiffres par exemple "toto (jan 2019)"
>
> j'ai déjà effectué un gros travail de tri et de dédoublonnage donc il
> ne devrait plus y avoir de fichier à contenu identique dans cet
> ensemble de répertoires mais je sèche sur l'étape suivante:
>
> je souhaite renommer en masse tous les fichiers selon le schéma suivant :
>
> -titi  , -toto etc.
>
> par exemple  "toto (jan 2019)"
> toto/espace/parenthèse/contenu-de-la-parenthèse/parenthèse devrait
> être renommé en "2019-toto"
>
> en récupérant donc le contenu NUMERIQUE exclusivement des parenthèses
> figurant dans le nom de *certains* fichiers ,  en virant l'espace de
> fin et en ajoutant un tiret plutôt qu'une espace entre le contenu de
> la parenthèse (qui donc se trouvera au début du nom) et la suite du
> nom de fichier.
>
> j'ai su faire ça il y a trés longtemps avec awk mais là je bute sur le
> fait que les noms de fichiers n'ont pas tous le même nombre de caractères
>
>
> pourriez-vous m'aider ?
>
> Sam
>
>



HS renommage en masse (expressions régulières)

2019-07-18 Par sujet Samuel Cifuentes

Salut

je dois "nettoyer" un ensemble de fichiers dont les noms ressemblent à ceci

2019 toto   (2019/espace/toto)

2018 titi

2019 titi

tititoto (2018)

titi (2019)

toto (2017)   etc.

par ailleurs, certains des contenus des parenthèses ne sont pas 
seulement des chiffres par exemple "toto (jan 2019)"


j'ai déjà effectué un gros travail de tri et de dédoublonnage donc il ne 
devrait plus y avoir de fichier à contenu identique dans cet ensemble de 
répertoires mais je sèche sur l'étape suivante:


je souhaite renommer en masse tous les fichiers selon le schéma suivant :

-titi  , -toto etc.

par exemple  "toto (jan 2019)" 
toto/espace/parenthèse/contenu-de-la-parenthèse/parenthèse devrait être 
renommé en "2019-toto"


en récupérant donc le contenu NUMERIQUE exclusivement des parenthèses 
figurant dans le nom de *certains* fichiers ,  en virant l'espace de fin 
et en ajoutant un tiret plutôt qu'une espace entre le contenu de la 
parenthèse (qui donc se trouvera au début du nom) et la suite du nom de 
fichier.


j'ai su faire ça il y a trés longtemps avec awk mais là je bute sur le 
fait que les noms de fichiers n'ont pas tous le même nombre de caractères



pourriez-vous m'aider ?

Sam