Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 29/01/2012, à 18:29

Otyugh

[débutant] Normalisation d'une suite de fichiers

Salut,
j'ai récemment reçu une tonne des fichiers d'un nom [gnagnagna]SUJET_[N* DU SUJET]_[gnagnagna].
J'aimerais supprimer la partie [gnagna] en lançant le script sur la base du dossier.

Un genre de sélection de fichiers a normaliser ;
ls | egrep ${nom}_[0-9]+

Puis...
Mon problème consiste a "couper" les parties indésirable. Cut ?
Je me suis un peu paumé avec la doc, et vu que ça me semble être un problème simple, je compte sur des usagers confirmés yikes
Merci d'avance d'un ch'tit coup de pouce !

Y a pas d'option egrep pour ne garder, après filtrage, que ce qui est autorisé par le filtrage ? (j'ignore si je suis clair yikes)

Dernière modification par Otyugh (Le 29/01/2012, à 18:31)

Hors ligne

#2 Le 29/01/2012, à 19:08

aduxas

Re : [débutant] Normalisation d'une suite de fichiers

Tu as regardé la commande "rename"?

Hors ligne

#3 Le 29/01/2012, à 19:09

pingouinux

Re : [débutant] Normalisation d'une suite de fichiers

Bonjour,
À adapter, notamment supprimer echo quand c'est bon.

$ touch blablaSUJET_{1..5}_bliblibli
$ ls -1
blablaSUJET_1_bliblibli
blablaSUJET_2_bliblibli
blablaSUJET_3_bliblibli
blablaSUJET_4_bliblibli
blablaSUJET_5_bliblibli
$ nom=SUJET; for i in *${nom}_*_*; do j=$(sed -E 's/^.*('${nom}'_[0-9]+)_.*$/\1/' <<<"$i"); echo mv $i $j; done
mv blablaSUJET_1_bliblibli SUJET_1
mv blablaSUJET_2_bliblibli SUJET_2
mv blablaSUJET_3_bliblibli SUJET_3
mv blablaSUJET_4_bliblibli SUJET_4
mv blablaSUJET_5_bliblibli SUJET_5

Hors ligne

#4 Le 29/01/2012, à 20:58

Hizoka

Re : [débutant] Normalisation d'une suite de fichiers

Il est surement plus simple et plus logique d'utiliser rename :

ls
blablaSUJET_10_bliblibli  blablaSUJET_13_bliblibli  blablaSUJET_16_bliblibli  blablaSUJET_19_bliblibli  blablaSUJET_2_bliblibli  blablaSUJET_5_bliblibli  blablaSUJET_8_bliblibli
blablaSUJET_11_bliblibli  blablaSUJET_14_bliblibli  blablaSUJET_17_bliblibli  blablaSUJET_1_bliblibli   blablaSUJET_3_bliblibli  blablaSUJET_6_bliblibli  blablaSUJET_9_bliblibli
blablaSUJET_12_bliblibli  blablaSUJET_15_bliblibli  blablaSUJET_18_bliblibli  blablaSUJET_20_bliblibli  blablaSUJET_4_bliblibli  blablaSUJET_7_bliblibli

rename "s/.*(SUJET_[0-9]*)_.*/\$1/" *

ls
SUJET_1   SUJET_11  SUJET_13  SUJET_15  SUJET_17  SUJET_19  SUJET_20  SUJET_4  SUJET_6  SUJET_8
SUJET_10  SUJET_12  SUJET_14  SUJET_16  SUJET_18  SUJET_2   SUJET_3   SUJET_5  SUJET_7  SUJET_9

et si on veut l’extension :

ls
blablaSUJET_10_bliblibli.txt  blablaSUJET_14_bliblibli.txt  blablaSUJET_18_bliblibli.txt  blablaSUJET_2_bliblibli.txt  blablaSUJET_6_bliblibli.txt
blablaSUJET_11_bliblibli.txt  blablaSUJET_15_bliblibli.txt  blablaSUJET_19_bliblibli.txt  blablaSUJET_3_bliblibli.txt  blablaSUJET_7_bliblibli.txt
blablaSUJET_12_bliblibli.txt  blablaSUJET_16_bliblibli.txt  blablaSUJET_1_bliblibli.txt   blablaSUJET_4_bliblibli.txt  blablaSUJET_8_bliblibli.txt
blablaSUJET_13_bliblibli.txt  blablaSUJET_17_bliblibli.txt  blablaSUJET_20_bliblibli.txt  blablaSUJET_5_bliblibli.txt  blablaSUJET_9_bliblibli.txt

rename "s/.*(SUJET_[0-9]*)_.*\.(.*)$/\$1.\$2/" *

SUJET_10.txt  SUJET_12.txt  SUJET_14.txt  SUJET_16.txt  SUJET_18.txt  SUJET_1.txt   SUJET_2.txt  SUJET_4.txt  SUJET_6.txt  SUJET_8.txt
SUJET_11.txt  SUJET_13.txt  SUJET_15.txt  SUJET_17.txt  SUJET_19.txt  SUJET_20.txt  SUJET_3.txt  SUJET_5.txt  SUJET_7.txt  SUJET_9.txt

Dernière modification par Hizoka (Le 29/01/2012, à 21:01)


KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github

Hors ligne

#5 Le 29/01/2012, à 21:08

pingouinux

Re : [débutant] Normalisation d'une suite de fichiers

Hizoka #4 a écrit :

Il est surement plus simple et plus logique d'utiliser rename :

Je suis d'accord, mais je ne connais pas bien la syntaxe perl que rename utilise. Dans ce cas, ça avait l'air simple, effectivement.

Hors ligne

#6 Le 29/01/2012, à 21:11

Hizoka

Re : [débutant] Normalisation d'une suite de fichiers

c'est quasiment la même syntax que sed (je ne connais pas perl sinon... je me débrouille avec sed seulement)


KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github

Hors ligne

#7 Le 29/01/2012, à 21:57

aduxas

Re : [débutant] Normalisation d'une suite de fichiers

Hizoka a écrit :
rename "s/.*(SUJET_[0-9]*)_.*/\$1/" *

D'acord, mais il faut enlever l'antislash devant le dollar si on utilise des simples cotes, sinon:

$ rename -n 's/.*(SUJET_[0-9]).*/\$1/' *SUJET*
blablaSUJET_1_bliblibli renamed as $1
blablaSUJET_2_bliblibli renamed as $1
blablaSUJET_3_bliblibli renamed as $1
blablaSUJET_4_bliblibli renamed as $1
blablaSUJET_5_bliblibli renamed as $1

Hors ligne

#8 Le 29/01/2012, à 22:03

Otyugh

Re : [débutant] Normalisation d'une suite de fichiers

Merci ! Je pensais vraiment pas que ça puisse se faire sur une unique ligne, moi j'allais écrire un petit script, mais un script quand même...

Mhm, et pourquoi j'ai la documentation de rename et pas la commande ? J'ai aucune idée d'où trouver ça T_T

Hors ligne

#9 Le 29/01/2012, à 22:08

aduxas

Re : [débutant] Normalisation d'une suite de fichiers

vérifie si c'est dans /etc?

$ ll `which rename`
lrwxrwxrwx 1 root root 24 2010-09-10 19:29 /usr/bin/rename -> /etc/alternatives/rename

Hors ligne

#10 Le 30/01/2012, à 08:31

serged

Re : [débutant] Normalisation d'une suite de fichiers

Sinon, pour les feignants, en mode graphique, il y a pyRenamer à qui on peut faire dire papa-maman...


LinuxMint Vera Cinnamon et d'autres machines en MATE, XFCE... 20.x , 21.x ou 19.x
Tour : Asus F2A55 / AMD A8-5600K APU 3,6GHz / RAM 16Go / Nvidia GeForce GT610 / LM21.1 Cinnamon
Portable : LDLC Mercure MH : Celeron N3450 /RAM 4Go / Intel HD graphics 500 i915 / biboot Win 10 (sur SSD) - LM21.1 MATE (sur HDD)

Hors ligne

#11 Le 30/01/2012, à 08:49

Hizoka

Re : [débutant] Normalisation d'une suite de fichiers

j'aime krename en qt.

Le plus puissant que j'ai tester c'est metamorphose2, il permettait de renommer aussi les dossiers...


KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github

Hors ligne

#12 Le 30/01/2012, à 14:21

serged

Re : [débutant] Normalisation d'une suite de fichiers

Hizoka a écrit :

j'aime krename en qt.

Le plus puissant que j'ai tester c'est metamorphose2, il permettait de renommer aussi les dossiers...

Jamais réussi à faire fonctionner metamorphose2 sous Linux (manque quelque chose, en rapport avec la langue, pas envie de réinstaller pour trouver quoi...). Sous WIndows, pas de problème !


LinuxMint Vera Cinnamon et d'autres machines en MATE, XFCE... 20.x , 21.x ou 19.x
Tour : Asus F2A55 / AMD A8-5600K APU 3,6GHz / RAM 16Go / Nvidia GeForce GT610 / LM21.1 Cinnamon
Portable : LDLC Mercure MH : Celeron N3450 /RAM 4Go / Intel HD graphics 500 i915 / biboot Win 10 (sur SSD) - LM21.1 MATE (sur HDD)

Hors ligne