1 votos

Encolar cronológicamente archivos rtf mediante bash script

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

Esta es 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 todos en un único archivo rtf, respetando el orden cronológico.

¿Cómo puedo hacerlo? De momento he creado el siguiente script: por cada archivo rtf de la carpeta, crea un nuevo archivo (.txt... ¡es tan difícil 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 tosco...) Ahora me gustaría pegarlas en orden cronológico pero estoy un poco perdido... ¿Alguna idea? ¿Puede ser útil Automator? Gracias.

1voto

M.S. Puntos 18

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

He creado 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 por cada archivo RTF que tenía en carpeta se creaba un nuevo archivo .txt asociado a él. Este archivo txt contenía metadatos útiles (para mí) del propio archivo. Fíjate 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 hacen referencia.

Ejemplo: Tenía el archivo01.rtf en la carpeta. Después de ejecutar el script, en la carpeta podía encontrar un archivo llamado archivo01_info_file.txt cuyo contenido era

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: abrir el Finder, ordenar por fecha de creación los archivos de la carpeta, seleccionarlos todos y arrastrarlos a un nuevo ... ... documento de Microsoft Word (:-D). El formato de rtf se mantuvo y el orden cronológico también.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X