Une place pour une véritable innovation. Partagez vos propres utilitaires créés avec la communauté Manjaro.
Questions et discussions sur la programmation et le codage.
Répondre

Sript pour extraire un fichier spécifique d'une archive

#1Messageil y a 5 ans

Bonsoir,

Comme je travaille pas mal sur les livres électroniques, j'ai parfois une trentaine d'archives (.rar, .zip, .7zip) qui contiennent plusieurs fichiers. De ces archives, je ne veux qu'extraire un fichier spécifique. En l'occurrence le .epub.
Pour la première fois, je me suis tenté à faire un petit script afin de ne pas le faire à la main pour chaque archive.
Le voici :

#!/bin/bash

# Nécessite p7zip.


choose_dir () {
zenity --title="$1" --file-selection --filename=~ --directory 2>/dev/null
}

idir=$(choose_dir "Dans quel répertoire sont les archives ?")
(( $? ))

odir=$(choose_dir "Dans quel répertoire extraire les livres ?")
(( $? )) 

for file in "$idir"/*.zip "$idir"/*.rar "$idir"/*.7z
do
  case "${file##*.}" in
    "rar") unrar e "$file" "*.epub" "${odir}/" ;;
    "zip") unzip "$file" "*.epub" -d "${odir}/" ;;
    "7z") 7zr e -o"${odir}/" "$file" "*.epub" ;;
    *) ;;
  esac
done

exit 0
Mais il ne fonctionne pas. Il me retourne l'erreur :

./xepub.sh 
unzip:  cannot find or open /*.zip, /*.zip.zip or /*.zip.ZIP.

No zipfiles found.

UNRAR 5.60 freeware      Copyright (c) 1993-2018 Alexander Roshal

No files to extract

7-Zip (a) [64] 16.02 : Copyright (c) 1999-2016 Igor Pavlov : 2016-05-21
p7zip Version 16.02 (locale=fr_BE.UTF-8,Utf16=on,HugeFiles=on,64 bits,4 CPUs Intel(R) Core(TM) i5-5675C CPU @ 3.10GHz (40671),ASM,AES-NI)

Scanning the drive for archives:
           

Command Line Error:
Cannot find archive
Or je me trouve bien dans le répertoire où se trouvent les archives. Et lorsque je lance mon script dans le terminal, j'obtiens cette erreur.
Pourriez-vous aider le pôvre débutant que je suis ?
Merci.

Sript pour extraire un fichier spécifique d'une archive

#2Messageil y a 5 ans

Désolé, autant pour moi.
J'ai trouvé mon erreur.
Il fonctionne très bien.
J'avais simplement commis l'erreur de mal choisir mon répertoire.
Encore désolé.
Mais il pourra peut-être servir à d'autres. :siffle:siffle
Répondre