(unix shell scripting) Décompresser plusieurs fichiers zip, renommer décompressé le fichier suivant nom de fichier zip
J'ai plusieurs fichiers zip comme dans cet exemple:
759198298412.zip
----i love you.pdf
----forever and one.txt
----today and tomorrow.docs
48891721241592__5123.zip
----whatever it is.pdf
5717273_616.zip
----igotit.txt
----thank you very much.mp3
Je suis en train de faire un script pour décompresser les fichiers zip, et de renommer les fichiers décompressés pour le nom de fichier zip. comme cette sortie:
759198298412.pdf
759198298412.txt
759198298412.docs
48891721241592__5123.pdf
5717273_616.txt
5717273_616mp3
J'ai trouvé ce script ci-dessous, mais il ne fonctionne pas pour moi parce que mes fichiers ont de l'espace et j'ai plusieurs fichiers dans un fichier zip.
for i in *.zip
do
n=$(unzip -lqq $i | awk '{print $NF}')
e=${n#*.}
unzip $i && mv $n ${i%%_*}".$e"
done
S'il vous plaît aider! merci
OriginalL'auteur Thuan Nguyen | 2014-08-21
Vous devez vous connecter pour publier un commentaire.
Si l'abandon de tout ce qui est après le premier caractère de soulignement dans le nom de fichier est important que le mv ligne doit être:
Et ont que la suppression de travailler même lorsqu'aucun trait de soulignement est présent dans le nom de fichier zip utilisation:
Et de garder tous les fichiers dans le répertoire de niveau supérieur préfixe
../
à lamv
nom du fichier cible.OriginalL'auteur Etan Reisner
Quelques petits changements:
unzip -Z -1
pour obtenir une liste des fichiers dans l'archive pour éviter l'utilisation de awk (qui est l'impression que la partie finale de noms avec des espaces).unzip -Z -1
divise les enregistrements en ligne, nous avons défini la FI '\n' ainsi les dossiers de split correctement.Nouveau script est:
Noter que ce script suppose que vous avez seulement un de chaque extension de fichier dans votre zip. Si ce n'est pas vrai, vous aurez besoin de gérer les fichiers en double d'une certaine façon.
De sortie après l'exécution:
OriginalL'auteur Beggarman
Le script fondamentalement juste dézippe les fichiers dans un nouveau répertoire temporaire, puis renomme tous les fichiers dans le nouveau répertoire et les déplace hors de l'annuaire, et enfin, il supprime le répertoire temporaire.
OriginalL'auteur scht_r