Haga que Automator analice las carpetas y enumere todos los nombres de archivos sin su extensión

1

Automator newbee pregunta aquí. He buscado por todas partes y simplemente no puedo encontrar lo que necesito (ni comprender cómo funcionan las cosas :-().

Me gustaría que Automator se analizara a través de una carpeta determinada, que se subdivide en docenas de carpetas. Cada una de estas subcarpetas contiene un número variable de archivos con su respectiva extensión de archivo (.mov, .mp4, .wmv y otros). En última instancia, el proceso automatizado generará la lista de todos los archivos, menos su nombre de extensión de archivo en un archivo de texto. Debe haber entre 50 y 200 nombres en total.

Fuentes de muestra:
RootFolder > Subcarpeta1 > File1.mov, File2.mp4
RootFolder > Subcarpetas 2 > File3.wmv, File4.mov, File5.mp4

Contenido del archivo de texto de salida:
File1
File2
File3 (...)
Este archivo de texto podría ubicarse en el nivel de RootFolder o en el escritorio.

¡Gracias de antemano por cualquier ayuda que pueda proporcionar!

Alain

    
pregunta user71960 03.03.2014 - 15:15

2 respuestas

1

Enfoque de automatización y scripting

Las acciones de Automator que deseas son:

  • Pregunte por los elementos del Finder, con Tipo configurado en Carpetas .
  • Ejecutar el script de shell, con Shell configurado en / usr / bin / perl .
  • Nuevo archivo de texto

Para el script de shell, copie y pegue:

use strict;
use warnings;
use File::Basename;
use File::Find;

find(sub {
    return if (-d $File::Find::name);
    my($filename,undef,undef) = fileparse($_,qr/\.[^.]*/);
    print $filename."\n";
}, shift);

PuedeutilizarlaacciónNuevodocumentodeedicióndetextosideseaquelalistadearchivosresultantesaparezcaenTextEditperonoseguardeeneldisco.

Para obtener más información sobre el uso de Automator, consulte los Conceptos básicos de Mac de Apple: Automator .

    
respondido por el Graham Miln 03.03.2014 - 16:27
0

También puede utilizar una acción Ejecutar script de shell:

O simplemente ejecute un comando como este en la Terminal:

find ~/path/to/dir -type f|sed 's|.*/||;s|\.[^.]*$||'>~/Desktop/files.txt
    
respondido por el user495470 03.03.2014 - 22:01

Lea otras preguntas en las etiquetas