extraire un fichier dans un zip [Shell ou Perl] - Codes et scripts - Linux et OS Alternatifs
Marsh Posté le 23-03-2007 à 13:37:57
Cherches dans les modules perl, il y en a un (j'ai plus le nom en tête) qui te permet de piloter les fichiers zip, d'en extraire un fichier, d'avoir la liste (ce qui t'intéresse) etc etc ...
Je m'en étais servi à l'époque (pas si lointaine) où je jouais à un jeu comme celui que tu gères (c'est quoi d'ailleurs ?), pour générer une cartographie à partir de mon rapport et de ceux de mes alliés
Marsh Posté le 23-03-2007 à 13:41:28
Mais bien sûr, tu as raison, j'avais oublié le module Perl Archive::Zip !! J'ignorais juste qu'en plus de créer des fichiers zip, il était aussi capable de retourner des listes !
Impec, merci m'sieur
Marsh Posté le 23-03-2007 à 13:43:01
Et alors, c'est quoi ton jeu ?
edit: de rien
Marsh Posté le 23-03-2007 à 13:43:36
wedgeant a écrit : Et alors, c'est quoi ton jeu ? |
Mais que t'es curieux toué
Un jeu de combats de gladiateurs.
Marsh Posté le 23-03-2007 à 13:45:14
Aricoh a écrit : Mais que t'es curieux toué Un jeu de combats de gladiateurs. |
Voui, c'est pour savoir si j'en ai fait partie à un moment donné
En fait je pense pas ... j'étais plutôt SF (oceane-like, lifequest, toussah)
edit: tu m'le dis en mp, hein hein, dis ... steuplé
Marsh Posté le 23-03-2007 à 13:46:10
Aricoh a écrit : |
sudo emerge unzip && man unzip
=> $ unzip -l tonfichir.zip
Marsh Posté le 23-03-2007 à 13:47:08
G Abitbol a écrit : sudo emerge unzip && man unzip |
Euh oui mais non en fait ... en perl y'a même pas besoin de tout ça
Marsh Posté le 23-03-2007 à 13:58:32
wedgeant a écrit : |
Oui mais en fait, d'après le titre du post, j'avais compris qu'il voulait du perl OU du shell, et faire un script Perl juste pour lister le fichiers d'une archive zip, c'ést un peu sortir le tank pour tuer un moustique.
Marsh Posté le 23-03-2007 à 13:59:22
G Abitbol a écrit : Oui mais en fait, d'après le titre du post, j'avais compris qu'il voulait du perl OU du shell, et faire un script Perl juste pour lister le fichiers d'une archive zip, c'ést un peu sortir le tank pour tuer un moustique. |
Heu, en fait ce n'est pas un zip mais plus de 120 sur lesquels je dois bosser et du coup, Perl me semble tout indiqué
Marsh Posté le 23-03-2007 à 14:04:45
Aricoh a écrit : Heu, en fait ce n'est pas un zip mais plus de 120 sur lesquels je dois bosser et du coup, Perl me semble tout indiqué |
+1
D'autant plus que tu peux ouvrir les 120 en même temps avec perl, travailler dessus et tout ... tout ça sans avoir à les extraire nulle part
Bon ok, faut avoir assez de RAM, mais en théorie ça marche
Marsh Posté le 23-03-2007 à 14:11:56
wedgeant a écrit : +1 |
mouais, je suis pas convaincu :
Code :
|
bien sûr c'est vite fait hein, il doit y avoir des erreurs, mais l'idée est là, et j'ai pas besoin de tout dézipper non plus
Marsh Posté le 23-03-2007 à 14:16:33
Oh, mais ça a l'air intéressant ton truc dis-moi
Et ça m'évite de faire un script Perl et manipuler mes 120 zip comme des objets (je déteste la POO)
Je teste ça ce soir.
Tu vas m'entendre depuis chez toi si ça marche pas
Marsh Posté le 23-03-2007 à 14:25:52
Aricoh a écrit : Oh, mais ça a l'air intéressant ton truc dis-moi |
man unzip mon pote
Marsh Posté le 23-03-2007 à 14:27:12
wedgeant a écrit : |
Eh dis, t'as pas pris l'option "smileys visibles" sur le forum ?
= je plaisantais
Marsh Posté le 23-03-2007 à 14:37:40
Aricoh a écrit : Eh dis, t'as pas pris l'option "smileys visibles" sur le forum ? |
Nan, mais tu pouvais aussi être masochiste et vouloir te pignoler devant un script bash qui tuerait instantannément un rhinocéros hein
Marsh Posté le 23-03-2007 à 14:39:41
wedgeant a écrit : |
Bon, si ça peut te faire plaisir, j'tenterais de transformer ce script bash en script Perl et sans passer par Archive::zip
Merci à toi, G Abitbol
Marsh Posté le 23-03-2007 à 14:43:27
Allez, une version de grosse brute à deux balles Perl :
Code :
|
Mais par précaution, je testerai la version bash avant
Marsh Posté le 23-03-2007 à 14:58:14
Code :
|
t'économises une variable
Et il vaut mieux faire appel à system() qu'à ``
et "or" c'est pas pour les manchots
et si tu mets -w en option, faut déclarer @zip sinon tu vas te faire jeter
Marsh Posté le 23-03-2007 à 20:26:55
Ton script est passé sans correction aucune, G Abitbol, et j'ai bien tout extrait !!
Bravo et merci pour ton aide !!!
Marsh Posté le 23-03-2007 à 13:03:54
Bonjour,
la question semble anodine pour vous autres, habitués des commandes UNIX mais là, j'avoue être dubitatif sur la manière dont m'y prendre.
Voilà. J'administre un jeu se déroulant par tour. Chaque joueur reçoit un fichier HTML à chaque tour. J'archive tous les fichiers HTML d'un tour dans un seul fichier zip.
L'un de mes joueurs vient de planter son dd et il aimerait bien que je lui retourne l'intégralité de ses tours HTML.
Je ne vous demanderais rien si c'était rapide à faire, seulement voilà : j'ai environ 130 archives zip
Admettons qu'il s'agisse du joueur n° 108. A chaque tour, il a reçu un fichier HTML nommé (je simplifie) Jo108Ton (où n est un n° de tour). Exemple : fichier Jo108To24.htm.
A moins d'extraire chacun des zip pour n'en récupérer qu'un seul fichier à chaque fois, et tout ça manuellement, je vois pas comment m'y prendre.
Je programme en Perl, aussi aurais-je juste besoin que vous m'aidiez sur le truc suivant.
J'aimerais en fait avoir une commande UNIX à passer à mon script Perl pour pécho la liste des fichiers html contenus dans un zip donné et n'en extraire qu'un s'il concerne le joueur en question.
A partir de la liste des fichiers, je pourrai me débrouiller ensuite pour extraire le fichier. Mais comment avoir la liste ?
---------------
Samsung Galaxy S1 -> Samsung Galaxy S2 -> Samsung Note 2 -> Huawei Ascend Mate 7 -> ZTE Axon 7 -> OnePlus 6T -> Oppo Find X2 PRO -> Google Pixel 9 PRO XL