Estoy intentando hacer un script que distribuya archivos en carpetas en función del contenido del archivo. En concreto, tengo un conjunto de archivos .xml que contienen el elemento <year></year>. Dentro de este elemento puede haber cuatro opciones:
Using xml Syntax Highlighting
- <year>1500</year>
- <year>1600</year>
- <year>1700</year>
- <year>1800</year>
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4
Lo que quiero es distribuir los archivos .xml en cuatro carpetas (1500, 1600, 1700, 1800) en función del contenido del elemento year. Por ejemplo, si el archivo .xml tiene el elemento <year>1500</year> ese archivo debe ir a la carpeta 1500, y así sucesivamente. Los archivos están todos en una carpeta llamada "input".
He probado a hacer lo siguiente:
Using perl Syntax Highlighting
- mkdir '1500';
- mkdir '1600';
- mkdir '1700';
- mkdir '1800';
- opendir IN, 'input';
- my @in = grep { /^[^.]/ } readdir IN;
- closedir IN;
- for my $in (@in) {
- open IN, '<', "input/$in";
- $/ = undef;
- $file = <IN>;
- if ($file =~ /<year>15/) {
- rename "$in", "1500";
- }
- }
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4
Consigo crear las carpetas, pero no consigo crear una copia de cada archivo en la carpeta correspondiente. ¿Alguna sugerencia?