Reunir varios documentos en uno solo usando Textutil y el Terminal en Mac OS X

terminal_icon.jpgAntonia nos pregunta «Hola: ante todo, agradeceros y mucho el trabajo que hacéis con vuestra web y como veo que solucionáis problemas, me atrevo a escribiros para haceros una pregunta que es mas un ruego, porque me quitaría mucho trabajo en la oficina ahora que me han dejado sola.

Como trabajo veraniego me han dejado un montón de documentos en varios formatos que tengo que reunificar. Hasta ahora lo estoy haciendo cortando y pegando, pero es una labor aburridísma. ¿No hay alguna forma de hacer esto mas rápido?. Agradecería cualquier idea, la cuestión es no estar aqui perdiendo el tiempo. Muchas gracias«.

Realmente si hay una posibilidad de hacer este trabajo usando el Terminal y un comando que es extremadamente útil para estos casos: textutil

Textutil es una especie de navaja suiza para el texto que reside en el Terminal desde Mac OS X 10.4 Tiger y que permite hacer conversiones de formatos entre documentos: por ejemplo, es posible convertir un documento de Word desde .docx a .doc y viceversa, o a otros formato como txt, html, rtf, rtfd, wordml, odt y webarchive (el formato en el que Safari guarda las páginas web).

Un ejemplo clásico de textutil es la conversión de formatos; veamos un ejemplo:

textutil -convert doc /ruta/a/mi/documento.docx

Con este comando, convertiríamos al formato .doc un documento en formato .docx (openXML).

Pero Textutil hace muchísimas cosas mas que están referenciadas en la página de su manual en Apple. Convierte formatos, tipografías, tamaños de las mismas, añade o quita metadatos y mucho mas.

Tu caso específico

Vamos a poner un ejemplo de «reunificación» de documentos en uno solo usando Textutil:

textutil -cat doc -title "concatenados" -output resultado.doc *.rtf

Donde:

  • Textutil: invocamos la utilidad en el terminal
  • -cat: es la bandera que indica a textutil que vamos a concatenar documentos
  • doc: es el formato de documento final: puede ser txt, html, rtf, rtfd, doc, docx, wordml, odt o webarchive
  • -title: el título del documento final; irá entre comillas
  • -output: al que se añade nombre y extensión del documento final
  • *.rtf: los documentos que leerá para concatenar. Deben estar todos en el mismo formato y los leerá (y colocará dentro del nuevo documento) en orden secuencial (alfabético)
  • El documento final se almacenará junto a los documentos que has usado para construirlo.

    Recuerda que para ejecutar este comando (o uno similar) debes dirigirte a la carpeta donde tienes esos documentos almacenados: la mejor forma de hacerlo es escribir cd y luego arrastrar la carpeta donde has reunido esos documentos al terminal para obtener la ruta. Solo tendrás que pulsar retorno de carro y listo.

    4 Comments

    1. Anónimo

      Puede servir algo como esto para darle el orden que queremos y de paso tomar formatos distintos?

      $ vi docs
      documento_a.rtf
      documento_x.doc
      documento_b.html
      documento_c.doc
      :wq

      $ for i in `cat docs`; do textutil -cat doc -title «concatenados» -output resultado.doc $i; done

      o algo asi.

      Saludos

    2. mifamon

      ¿podria juntar en un archivo de texto todos los archivos de un directorio, todos ellos con el mismo nombre xxx.dat?

      me interesaria extraer el texto de todos ellos, pero estan en diferentes carpetas y todos se llaman igual.

    Deja una respuesta