logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).

#51 12-04-2016 07:55:44

Philippine
Membre
Distrib. : Debian Jessie
Noyau : Linux 3.16.0-4-686-pae
(G)UI : Xfce
Inscription : 03-12-2015

Re : [Résolu] Sauvegarder tags des fichiers flac avec une ligne de commande

Re-salut à tous,

J'aurais encore une petite question pour améliorer - encore - le super-script d'Enicar. En effet, certains des titres de mes albums comportent un slash, et ce slash a pour effet de bloquer le script. Voici un exemple:

philippine@debian:~/musique/6 Prêt à charger/Haydn - Symphonies n°91 & 92 - René
Jacobs$ ~/.sauvegarder_tags.sh
/home/philippine/.sauvegarder_tags.sh: ligne 27: Haydn - Symphonie n°92 en Sol majeur, Hob.I/92 - René Jacobs_tags_album.txt: Aucun fichier ou dossier de ce type
philippine@debian:~/...



Le coupable est clairement le slash qui est là: Symphonie n°92 en Sol majeur, Hob.I/92. Question: comment faire pour qu'il soit ignoré ou transformé en un autre caractère?

Pour mémoire je remets le script entier:

#! /bin/bash

set -e
set -u

files_exist () {

  [ -e "$1" ]
}            

# On génère 1 fichier de tags par fichier flac
find . -type f -iname '*.flac' -exec metaflac --export-tags-to={}_tags.txt {} \;

IFS=

# Ensuite on parcourt les répertoires
find -type d -print0 |while read -rd '' directory
do
   
    cd "${directory}"
    if files_exist *_tags.txt; then
        # pour chaque fichier tags
        for f in *_tags.txt; do
            # On extrait le nom de l'album
            album="$(sed -n /^album=/s/^album=//p <${f})"
            # On copie le fichier de tags à la fin du fichier de l'album
            cat "${f}" >>"${album}_tags_album.txt"
            # On ajoute une nouvelle ligne.
            echo >>"${album}_tags_album.txt"
        done
        # On efface les fichiers *_tags.txt, mais on garde
        # les fichiers *_tags_album.txt !
        rm -f *_tags.txt
    fi
    cd -
done

#en cas de fausse manip'
#find . -name "*.txt" -delete
#sauvegarde des fichiers tags
#find . -iname '*album.txt' -exec mv -f {} . "/chemin/dossier" \;
 



Merci smile

Dernière modification par Philippine (12-04-2016 07:58:56)

Hors ligne

#52 12-04-2016 09:13:22

MicP
Membre
Inscription : 29-02-2016

Re : [Résolu] Sauvegarder tags des fichiers flac avec une ligne de commande

Philippine a écrit :

…Le coupable est clairement le slash…
…comment faire pour qu'il soit ignoré ou transformé en un autre caractère?…



            # On extrait le nom de l'album
            album="$(sed -n /^album=/s/^album=//p <${f})"
            # Dans le nom de l'album, on remplace tous les caractères "/" par "⁄" (U+2044 e2 81 84 FRACTION SLASH)
            album="${album//\//⁄}"
            # On copie le fichier de tags à la fin du fichier de l'album
            cat "${f}" >>"${album}_tags_album.txt"

Dernière modification par MicP (22-09-2016 22:34:34)

Hors ligne

#53 12-04-2016 11:10:37

Philippine
Membre
Distrib. : Debian Jessie
Noyau : Linux 3.16.0-4-686-pae
(G)UI : Xfce
Inscription : 03-12-2015

Re : [Résolu] Sauvegarder tags des fichiers flac avec une ligne de commande

Ça maaaarche! Super, merci!

Hors ligne

#54 13-04-2016 10:34:47

tontongurine
Membre
Distrib. : debian 8.3
Noyau : Linux 3.16.0-4-amd64
(G)UI : lxde
Inscription : 28-01-2016
Site Web

Re : [Résolu] Sauvegarder tags des fichiers flac avec une ligne de commande

Perso, je e suis fait un script pour avoir des noms de fichiers avec que de l'ascii portable partout et lisible partout. Plus spartiate mais tellement moins foireux à l'usage. Attention aussi, d'autres pièges te tendent les bras notamment les guillemets, les parenthèses, les antislash, les virgules, les points-virgules, etc... Pas forcément tout de suite mais plus tard pour faire des opérations sur tes fichiers en ligne de commande.

En tout cas, vire les espaces. C'est le premier truc qui fait foirer des scripts simples, et on distingue difficilement un espace de deux espaces et ça aussi ça peut être embêtant.

(J'ai vécu tout ça.)

tontongurine,
linuxeur et figuriniste depuis le XXe siècle
debian ou linux mint selon les bécanes

Hors ligne

Pied de page des forums