Bonjour,
J'avais envoyé un message, il y a environ
3h30 et il a été supprimé, probablement à cause de la migration des serveurs de MacGeneration.
pour le 2) ça marche pas, je dois faire une mauvaise manip, j'ai ce message d'erreur :
Erreur d'applescript
erreur dans microsoft Excel : sh : line 1 : Macintosh: command not found
Il ne faut pas utiliser la commande
do shell script dans un bloc
tell application "Microsoft Excel".
Sinon il faut mettre un "
tell me" avant.
Bloc de code:
tell me to do shell script "/usr/bin/automator ~/Library/Workflows/Applications/Finder/CD\\ terminal.workflow"
pour le 3) ça marche, mais c'est très long, mes fichiers txt font en général entre 30 et 20 000 lignes
je posais mes questions au compte-goutte car je voulais chercher un peu par moi-même, mais après cette initiation, c'est peut-être plus simple si je pose le problème complet :
Il est préférable d'utiliser les commandes
shell pour une plus grande rapidité quand il faut traiter des
milliers de fichiers et des
milliers de lignes de texte.
Les problèmes possibles sont les fins de lignes et l'encodage des fichiers texte.
Tant que les noms contiennent des caractères
ASCII de base, l'encodage ne causera pas de problème.
Les fin de ligne pour un fichier texte (
séparée par tabulation) enregistrées par "
Microsoft Excel 2004" est une fin de ligne Mac, ça ne devrait pas avoir changé dans "Excel 2008", donc j'ai spécifié la fin de ligne dans
awk comme ceci.
RS=\"\\r\"
Voici le script :
Bloc de code:
-- le dossier qui contient les fichiers texte
set dossier_txt to quoted form of POSIX path of (choose folder with prompt "sélectionnez le dossier des fichiers .txt")
-- le dossier qui contient les fichiers tif
set dossier to quoted form of POSIX path of (choose folder with prompt "sélectionnez le dossier des fichiers .tif")
set t_awk to quoted form of "/usr/bin/printf \"\\nFichiers manquants dans le fichier \\\"\"\"${0##*/}\\\"\\n\" >>fichiers_manquants.txt
/usr/bin/awk -F\"\\t\" '$119 !=\"\" { print $119 }' RS=\"\\r\" \"$0\" | /usr/bin/sort -uf | while read line;do
if [ ! -e \"$line\" ];then /bin/echo \"$line\" >>fichiers_manquants.txt;fi
done"
do shell script "cd " & dossier & ";/bin/rm -f fichiers_manquants.txt;
/usr/bin/find " & dossier_txt & " -maxdepth 1 -name '*.txt' -print0 | /usr/bin/xargs -0 -n1 sh -c " & t_awk
-- ** ouverture du fichier dans TextEdit
do shell script "cd " & dossier & ";if [ -e fichiers_manquants.txt ];then /usr/bin/open -b com.apple.textedit fichiers_manquants.txt;fi"
1- Le script recherche les fichiers "
.txt" dans le dossier (il est préférable que les fichiers texte dans ce dossier soit tous des fichiers Excel, sinon on peut filtrer le nom du fichier avec un dénominateur commun) .
À chaque fichier trouvé, il écrit une ligne dans le fichier texte "
fichiers_manquants.txt" -->
Fichiers manquants dans le fichier "xyz.txt"
2- Après il récupère les données dans la colonne
119 ( les cellules vides sont ignorées), il trie les noms et supprime les doublons.
3- Pour chaque nom, il vérifie l'existence du fichier
tif, sil n'existe pas, il ajoute le nom du fichier
tif dans le fichier texte "fichiers_manquants.txt".
4- Après, il affichera le résultat dans "
TextEdit"