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 09/03/2017, à 10:52

Arioch91

[RESOLU] Script pour extraire de fichiers zip certains fichiers

Bonjour.

Je sèche un peu pour parvenir à mes fins alors voilà.

J'ai environ 400 archives au format zip dans lesquelles je dois retrouver un fichier et un seul, puis l'extraire.

Le problème, c'est que je ne connais que le début du nom du fichier qui m'intéresse.

Si par exemple le nom du fichier qui m'intéresse dans l'une de ces archives est "toto_A100-10.txt", il peut s'appeler aussi "toto_A100-24.txt" dans un autre zip.

Comment envoyer dans un script shell la commande unzip en lui fournissant comme argument toto_A100 afin que le script m'extraie tous les fichiers qu'il trouvera commençant par ce nom ?

Dernière modification par Arioch91 (Le 09/03/2017, à 19:45)


8 Go RAM - SSD 120 Go + SATA 1 To - Ubuntu 14.04 LTS

Hors ligne

#2 Le 09/03/2017, à 12:36

credenhill

Re : [RESOLU] Script pour extraire de fichiers zip certains fichiers

hello
essayer (je n'ai pas testé)

unzip *.zip "toto_A100*"

Hors ligne

#3 Le 09/03/2017, à 19:20

Arioch91

Re : [RESOLU] Script pour extraire de fichiers zip certains fichiers

Ca marche, merci beaucoup !


8 Go RAM - SSD 120 Go + SATA 1 To - Ubuntu 14.04 LTS

Hors ligne

#4 Le 09/03/2017, à 19:25

Arioch91

Re : [RESOLU] Script pour extraire de fichiers zip certains fichiers

Edit : ah mince, non. Sur les 400 et quelques archives, il n'a extrait qu'un seul fichier.

Il retourne pour les autres archives "not matched" alors que je sais pertinemment qu'il y a des fichiers à extraire dedans.


8 Go RAM - SSD 120 Go + SATA 1 To - Ubuntu 14.04 LTS

Hors ligne

#5 Le 09/03/2017, à 19:46

Arioch91

Re : [RESOLU] Script pour extraire de fichiers zip certains fichiers

J'ai finalement trouvé !

Voici la solution :

#!/bin/bash
for i in `ls *.zip` ;
	do
         files=`unzip -l $i | grep toto_A100`
         for j in $files ;
         do
             unzip $i $j
         done
    done

8 Go RAM - SSD 120 Go + SATA 1 To - Ubuntu 14.04 LTS

Hors ligne

#6 Le 09/03/2017, à 19:56

Hizoka

Re : [RESOLU] Script pour extraire de fichiers zip certains fichiers

arf...

for i in *.zip
do
  files=$(unzip -l "${i}" | grep "toto_A100")
  for j in "${files}" ;
  do
     unzip "${i}" "${j}"
  done
done

et je pense pas que ça fonctionne car j ne contient pas que le nom du fichier ?!*

Edit :
Archive:  logiciels.zip
caution: filename not matched:  26934
Archive:  logiciels.zip
caution: filename not matched:  2013-02-28
Archive:  logiciels.zip
caution: filename not matched:  23:16
Archive:  logiciels.zip
...
j'ai raison, il essaie d'extraire toutes les infos...
Si tu es sûr qu'il n'y a qu'un seul fichier dans le zip à extraire et qu'il n'a pas d'espace dans son nom :

for i in *.zip
do
  file=$(unzip -l "${i}" | grep "toto_A100")
  unzip "${i}" "${file##* }"
done

Dernière modification par Hizoka (Le 09/03/2017, à 20:04)


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

Hors ligne

#7 Le 09/03/2017, à 20:22

pingouinux

Re : [RESOLU] Script pour extraire de fichiers zip certains fichiers

Bonsoir,
Je n'ai pas testé, mais je ferais simplement ceci :

for i in *.zip
do
  unzip "$i" "toto_A100*"
done

Il y aura des problèmes si des fichiers d'archives différentes portent le même nom.

Hors ligne

#8 Le 10/03/2017, à 14:06

credenhill

Re : [RESOLU] Script pour extraire de fichiers zip certains fichiers

ou essayer

ls *zip | xargs -I{} unzip {} "toto_A100*"

Hors ligne

#9 Le 10/03/2017, à 18:00

Compte anonymisé

Re : [RESOLU] Script pour extraire de fichiers zip certains fichiers

ben sinon tout simple

unzip "*.zip" "toto_A100*"

avec les " autour de *.zip

#10 Le 10/03/2017, à 19:16

Arioch91

Re : [RESOLU] Script pour extraire de fichiers zip certains fichiers

Bonsoir.

Je vous assure que mon script shell a correctement fait le boulot.

Mais je vais garder vos idées sous le coude et les tester également.


8 Go RAM - SSD 120 Go + SATA 1 To - Ubuntu 14.04 LTS

Hors ligne

#11 Le 10/03/2017, à 19:40

pingouinux

Re : [RESOLU] Script pour extraire de fichiers zip certains fichiers

Arioch91 a écrit :

Je vous assure que mon script shell a correctement fait le boulot.

Si tu parles de ton script en #5, il est inutilement compliqué. De plus, il ne marchera pas si les noms de tes fichiers contiennent des espaces.

Hors ligne