Pegar cronológicamente archivos rtf a través de un script bash

1

Me gusta aprender y crear scripts pequeños para bash, y ahora finalmente tengo el primer problema "serio" que me gustaría resolver a través de un script.

Aquí está la situación: tengo una carpeta que contiene 45 archivos rtf. Quiero anteponer a cada uno de ellos el nombre del archivo (y su fecha de creación) y luego pegarlos en un único archivo rtf, respetando el orden cronológico.

¿Cómo puedo hacer eso? Por el momento he creado el siguiente script: para cada archivo rtf en la carpeta, crea un nuevo archivo (.txt ... ¡es tan difícil de usar rtf con bash!) Y escribe en él el nombre y la fecha de creación del archivo original.

for f in *.rtf; do 
touch $f"_info_file.txt"
echo "File name:" $f >> $f"_info_file.txt";
printf "Date: " >> $f"_info_file.txt";
stat -f "%SB" "$f" >>$f"_info_file.txt";
done

(Supongo que esto es muy difícil ...) Ahora me gustaría unirlos en orden cronológico, pero estoy un poco perdido ... ¿Alguna idea? ¿Puede ser útil Automator? Gracias.

    
pregunta Romeo 11.12.2018 - 23:33

1 respuesta

1

Siguiendo la sugerencia del mod, publico aquí mi solución al problema.

Creé el siguiente script para bash:

for f in *.rtf; do
   olddate=$(stat -f %SB -t %Y%m%d%H%M "$f")
   touch -mt $olddate "$f""_info_file.txt"
  echo "File name:" "$f" >> "$f""_info_file.txt";
  printf "Date: " >> "$f""_info_file.txt";
  stat -f "%SB" "$f" >>"$f""_info_file.txt";
done

Lo ejecuté en el bash y para cada archivo RTF que tenía en la carpeta se creó un nuevo archivo .txt asociado a él. Este archivo txt contenía metadatos útiles (para mí) del archivo en sí. Tenga en cuenta que, gracias al script anterior, los nuevos archivos txt se crearon de tal manera que su fecha de creación coincidió con los archivos a los que se refieren.

Ejemplo: tenía file01.rtf en la carpeta. Después de que se ejecutó el script, en la carpeta pude encontrar un archivo llamado file01_info_file.txt cuyo contenido estaba

Name file: file01.rtf 
Date: 20.12.2018 18.53 

La fecha de creación del archivo file01_info_file.txt es idéntica a la fecha de creación de file01.rtf.

Ahora la conclusión es fácil: abra el Finder, ordene por fecha de creación los archivos en la carpeta, selecciónelos y arrástrelos a un nuevo ... ... documento de Microsoft Word (:-D). Se mantuvo el formato de rtf y el orden cronológico.

    
respondido por el Romeo 20.12.2018 - 18:56

Lea otras preguntas en las etiquetas