#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
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 )
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
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
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
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