Techno-magis

Bash

Renommer en masse par ordre alphabétique

Dimanche 28 Juillet 2019

Pendant mes vacances, j'avais besoin de renommer mes photos par lot et en prenant bien soin de respecter l'ordre alphabétique des noms de fichier de base. Je n'ai pas trouvé de solution simple. En grattant un peu sur la toile et en combinant plusieurs trucs, je suis arrivé à ça :

CODE :

ls -1 *.jpg | awk -F_ '{print $(NF-1) " " $0}' | sort | cut -d' ' -f2- | rename -v 's/.*/our $i;if(!$i){$i=1;} sprintf("xxxxxx_%02d.jpg", $i++)/e'

  • *.jpg : le filtre de recherche (à changer si ce n'est pas des images).
  • xxxxxx_%02d.jpg : le nom final des fichiers, avec "%02d" pour le nombre de chiffre pour le compteur. Ici ça sera xxxxxx_01.jpg,xxxxxx_02.jpg, etc.
Commenter le billet...
Catégories :
Par Zéfling, le 28/07/2019 à 11:20:32
Le billet a été lue 12 fois, avec 0 commentaire publié.

Sauvegarde de Gitlab

Dimanche 3 Février 2019

J'en avais un peu marre d'aller chercher le backup à chaque fois pour le mettre dans un dossier de sauvegarde. Alors, j'ai fais un tout petit script pour faire le backup et aller le récupérer pour le copier là où je veux.

J'ai écrit ce petit script :

CODE :

#!/bin/bash
 
echo ">backup : gitlab"
gitlab-rake gitlab:backup:create
gitlab_folder='/var/opt/gitlab/backups/'
backup_folder='/my/backup/folder/'
gitlab_file=`ls -got ${gitlab_folder} | grep \.tar$ | head -1 | awk '{print $7}'`
echo ">copie : ${gitlab_folder}${gitlab_file}"
cp "${gitlab_folder}${gitlab_file}" $backup_folder
chown user:user "${backup_folder}${gitlab_file}"

Remplacez '/my/backup/folder/' par votre dossier de sauvegarde et user:user par vos droits.

Maintenant je n'ai plus qu'à faire :

CODE :

sudo ./monscript.sh
Commenter le billet...
Catégories :
Par Zéfling, le 03/02/2019 à 20:35:12
Le billet a été lue 65 fois, avec 0 commentaire publié.

Suppression de l'orientation EXIF d'une liste d'images avec un script

Dimanche 23 Mars 2014

À l'origine, j'avais récupéré une solution pour tourner les images de mon numérique. Tous les logiciels ne supportent pas la rotation EXIF, du coup je préfère dans certains cas tourner l'image et supprimer la rotation EXIF. La solution que j'avais trouvée fonctionnait de façon quelque peu erratique avec des cas où la rotation n'était pas faite pour une raison que je n'ai jamais comprise. J'ai pas mal souffert du script foireux pendant mon voyage au Japon (et j'ai jamais vraiment eu le temps de m'y pencher durant mon expédition).

Après un peu de lecture de doc, de recherches sur internet, j'ai corrigé les problèmes et j'ai au passage fait une présentation un peu plus sympa pour montrer l'avancement de la conversion.

Pour faire simple, le script met les extensions en minuscules, crée un dossier « rotate » et copie les fichiers dedans. Ensuite, il parcourt un par un les fichiers pour effectuer une rotation (si nécessaire).

Lire le billet en entier...
Catégories :
Par Zéfling, le 23/03/2014 à 00:45:24
Le billet a été lue 284 fois, avec 1 commentaire publié.

Conversion de vidéos vers WebM en masse

Dimanche 16 Mars 2014

Ayant un peu marre de faire de la conversion vidéo à la main, maintenant que je suis sous Linux, j'ai cherché un moyen de scripter une conversion de vidéos manuellement. J'ai testé un peu avant quelques solutions... mais jamais avec les résultats attendus. Soit la conversion WebM n'est pas possible, soit c'est extrêmement lent (non multi-threadé), soit il faut les faire une par une, soit il ne faut pas de caractères spéciaux. Bref, j'en suis venu à chercher à faire un script qui me sort de ses contraintes... et sur le Net ce n'est pas forcement simple de trouver ce que l'on veut. Beaucoup utilisent encore aujourd'hui « ffmepg » qui est aujourd'hui obsolète pour la conversion vidéo, ou encore la boucle ne fonctionne pas... En mélangeant ici et là quelques scripts Bash, je suis arrivé à faire mon petit fichier :

CODE :

#!/bin/bash
VIDEOS=.
find "$VIDEOS" -name '*.mp4' -exec sh -c 'avconv -i "$0" -threads 4 -b:v 2M  "${0%%.mp4}.webm"' {} \;
exit;

Celui-ci ne fait que de la conversion MP4 vers WebM. Comme j'ai quatre processeurs j'ai mis 4 threads et une compression vidéo à 2 Mb, en dessous je trouve que le rendu assez mauvais et c'est à peu près ce qu'utilise YouTube.

Je pense que je fais peut-être essayer d'appendre un peu plus le Bash pour faire quelque chose d'un peu plus évolué qui ne se limite pas à un format.

Commenter le billet...
Catégories :
Par Zéfling, le 16/03/2014 à 21:48:42
Le billet a été lue 135 fois, avec 0 commentaire publié.