10.11 El Capitan Liste des fichiers d'un dossier avec tag

jamespalmer

Membre confirmé
24 Janvier 2016
13
2
37
Bonsoir à tous,

Je cherche à un obtenir un fichier qui contiendrait la liste des fichiers présents d'un dossier avec leurs attributs (tag), cela nous donnerait par exemple sous un fichier txt

fichier001,TAG1,TAG2;fichier00n, TAGn...

Cela permettrait ensuite d'exporter sous excel et de gérer ses fichiers sous forme de base de données. Quelqu'un connaitrait-il les commandes nécessaires ?

Bien cordialement,
 
Salut

Une piste dans le terminal :

mdfind -onlyin /Répertoire_de_recherche "kMDItemUserTags == '*'" | while read f; do ls "$f"; mdls -name kMDItemUserTags "$f"; done >result.txt

Il faudra ensuite travailler le contenu du fichier result.tx .
 
Salut

Une piste dans le terminal :

mdfind -onlyin /Répertoire_de_recherche "kMDItemUserTags == '*'" | while read f; do ls "$f"; mdls -name kMDItemUserTags "$f"; done >result.txt

Il faudra ensuite travailler le contenu du fichier result.tx .
Bonjour jeanjd63,

Merci pour la réponse rapide, cela fonctionne effectivement. Je suis débutant sur le code dans le terminal il y a t-il un moyen de forcer le format de la sortie des données dans le fichiers txt. c'est à dire en colonne ou séparé par virgule ... afin de traiter le fichier de manière automatique plus simplement ensuite.

Bien cordialement,
 
Bonjour jeanjd63,

Merci pour la réponse rapide, cela fonctionne effectivement. Je suis débutant sur le code dans le terminal il y a t-il un moyen de forcer le format de la sortie des données dans le fichiers txt. c'est à dire en colonne ou séparé par virgule ... afin de traiter le fichier de manière automatique plus simplement ensuite.

Bien cordialement,
Là c'est à toi de jouer pour triturer les données.:D
 
Bonjour,

Je suis débutant sur le code dans le terminal il y a t-il un moyen de forcer le format de la sortie des données dans le fichiers txt. c'est à dire en colonne ou séparé par virgule ...
Si vous voulez un texte formaté comme ceci:

fichier1.jpg,Bleu,Vert,Jaune
fichier2.jpg,Rouge,Blanc
fichier3.jpg,Vert


Utilisé ce script
Bloc de code:
#!/bin/bash
mdfind -onlyin '/Répertoire_de_recherche' "kMDItemUserTags == '*'" | while read f; do
    echo -n ${f##*/}","
    mdls -name kMDItemUserTags "$f" | /usr/bin/perl -ne 'if (m/^ /) {s/^ +["]?|"$|\n//g;print}'
    echo ""
done > result.txt


Si vous voulez le chemin du fichier au lieu de son nom, remplacez echo -n ${f##*/}"," dans le script par echo -n "$f,"
 
Bonjour,


Si vous voulez un texte formaté comme ceci:




Utilisé ce script
Bloc de code:
#!/bin/bash
mdfind -onlyin '/Répertoire_de_recherche' "kMDItemUserTags == '*'" | while read f; do
    echo -n ${f##*/}","
    mdls -name kMDItemUserTags "$f" | /usr/bin/perl -ne 'if (m/^ /) {s/^ +["]?|"$|\n//g;print}'
    echo ""
done > result.txt


Si vous voulez le chemin du fichier au lieu de son nom, remplacez echo -n ${f##*/}"," dans le script par echo -n "$f,"
Ça c'est du tout cuit. :D
 
Bonsoir,

Bonsoir Merci pour votre aide, je suis également en train de regarder si l'inverser est possible à savoir attribuer des tags depuis un fichier txt ou csv et réussir l'intégration via le terminal, des idées ?

Cdt,
Oui, cela est possible.

J'ai un script AppleScript dans ce fil qui ajoute un tag dans des fichiers et un autre script qui supprime un tag dans des fichiers

Cela prendrais une modification dans le script pour lire le fichier CSV et appliquer le tag sur le fichier
Donc, il faut connaitre le format du texte et les champs dans ce fichier pour écrire ce script.