0 votes

Laisser les 9 derniers caractères d'un nom de fichier dans Automator

J'ai une tonne de fichiers à renommer pour lesquels nous n'avons besoin que des 9 derniers caractères du fichier.

Les fichiers sont actuellement nommés comme suit : FirstName_LastName_000000000.pdf. Essentiellement, je veux renommer les fichiers de façon à ce qu'ils soient nommés comme suit : 000000000.pdf

Si quelqu'un peut nous aider à trouver un moyen de le faire, ce serait génial.

1voto

user3439894 Points 52496

Oui, une des façons de le faire en Automator est d'utiliser un Exécuter le Shell script action avec le exemple bash script code présenté plus loin.

Vous pouvez créer un Automator Flux de travail ou Service/action rapide , le flux de travail.

Si vous faites juste un Flux de travail vous devrez alors ajouter un Fichiers et dossiers action par exemple Obtenez les articles sélectionnés de Finder ou Obtenir les éléments spécifiés de l'explorateur puis ajouter un Exécuter le Shell script action .

Si vous faites un Service/action rapide alors vous n'avez besoin que d'un Exécuter le Shell script action .

Si vous choisissez un Service/action rapide puis le configurer pour utiliser fichiers et dossiers sur Finder .

Pour le Exécuter le Shell script action ont leur paramètres configuré comme :

  • La coquille : /bin/bash
  • Passez l'entrée : comme arguments
  • Remplacer le code par défaut de la Exécuter le Shell script action avec le exemple bash script code .

Le site exemple bash script code utilise expansion des paramètres de l'enveloppe pour couper en tranches et en dés les nom de chemin entièrement qualifié du (des) fichier(s) qui lui est (sont) transmis en morceaux nécessaires, puis renomme le(s) fichier(s) en utilisant le mv commande avec le -n option qui n'écrasera pas un fichier existant, en se basant sur l'adresse de l'utilisateur. valeurs des morceaux en tranches et en dés de la nom de chemin entièrement qualifié .

Comme codé il utilise un regex pour n'agir que sur fichiers qui ont le modèle suivant, par exemple, FirstName_LastName_000000000 avec toute extension ajoutée, par exemple : .pdf

Exemple bash script code :

        # f = fully qualified pathname
        # d = directory pathname
        # fn = filename with extension
        # n = filename without extension
        # e = filename extension
        # s = filename suffix (last 9 characters of filename without extension)

    for f in "$@"
    do
        [ -f "${f}" ] || continue
        d="${f%/*}"
        fn="${f##*/}"
        [[ ${fn} =~ ^.*_.*_[0-9]{9}\..* ]] || continue
        n="${fn%.*}"
        e="${fn##*.}"
        s="${n: -9}"
        [ -n "${s}" ] || continue
        mv -n "${f}" "${d}/${s}.${e}"
    done

Dont la sortie serait, par exemple : 000000000.pdf

Si vous voulez qu'il agisse uniquement sur .pdf fichiers puis changer :

[[ ${fn} =~ ^.*_.*_[0-9]{9}\..* ]] || continue

A :

[[ ${fn} =~ ^.*_.*_[0-9]{9}\.[pP][dD][fF] ]] || continue

Autre réponse par Commentaire :

Les fichiers sont dans le même dossier. Les 9 derniers caractères sont tous uniques et ne sont pas dupliqués.

Si c'est une chose ponctuelle et que vous voulez juste ouvrir Terminal à cela dossier vous pouvez utiliser les éléments suivants commandement composé :

for f in *.[pP][dD][fF]; do mv -nv "${f}" "$(n="${f%.*}"; printf ${n: -9}).${f##*.}"; done 

Il n'agira que sur PDF fichiers et renommer les 9 derniers caractères . Notez toutefois qu'aucun traitement des erreurs autre que de ne pas écraser un fichier existant.


Note : Le <em>exemple </em><strong>bash script </strong><em>code </em>est juste cela et ne contient pas d'autres <em>gestion des erreurs </em>le cas échéant. C'est à l'utilisateur qu'il incombe d'ajouter toute <em>gestion des erreurs </em>selon ce qui est approprié, nécessaire ou souhaité.

0voto

Natsfan Points 12853

Si les fichiers sont dans le même dossier, allez dans le Finder et sélectionnez tous les fichiers que vous voulez renommer. Cliquez ensuite dessus avec le bouton droit de la souris et l'une des options proposées est de renommer xxx éléments, où xxx est le nombre de fichiers sélectionnés. Lorsque vous sélectionnez cette option, un panneau s'ouvre dans lequel vous pouvez saisir la manière dont vous souhaitez renommer les fichiers. Ensuite, vous pouvez sélectionner renommer et tous les fichiers seront renommés.

Ou en ligne de commande, utilisez ls *.ext où ext est l'extension de vos noms de fichiers, dans votre cas pdf. Si la commande ls n'a listé que les fichiers dont vous voulez changer le nom, utilisez cp *.ext newFileName.ext pour copier les fichiers vers un nouveau nom de fichier ou utilisez mv *.pdf NewFileName.pdf pour déplacer les fichiers.

-1voto

Hidden Android Points 1284

Ouvrez le Terminal et copiez/collez le code suivant :

for f in *; do mv "$f" "${f:19}"; done

Cela permettra de tronquer les 19 premiers caractères des noms de fichiers.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X