Copyright (c) 2014 Gabriel Czernikier. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled "GNU Free Documentation License". Tratamiento de archivos de texto, recorrido, etapas: Objetivo: archivos de tipo Chat Log de Messenger Todos los .txt recuperados photorec Codificacion de nombres de archivo: nombreoriginal(-initxt-fintxt)(-b)(-secuenciaporcion).txt Definicion: nombreoriginal: nombre original en la etapa 0 initxt, fintxt: al final de la etapa 2, secuencia de texto en archivos mixtos b: al final de la etapa 5, el archivo fue limpiado de caracteres no imprimibles ASCII secuenciaporcion: al final de la etapa 7, numero de porcion en la que se separo un contenido mezclado 0) carpeta origen: TXT 1) /*reducir el volumen de archivos, anticipo del paso 4*/ filtrar patrones Chat Log de Messenger: regex-nonprintable.pl+regex.txt+move-non-matches.sh (trata correctamente archivos bin y mixtos-txt-bin, trata correctamente archivos con secuencias de caracteres ascii de control esporádicos), archivo OUTPUT: report-messenger.txt, TXT-not-messenger 2) Extraer porciones de texto / lg(txt)>=20: extract-txt-bin-portions.sh+extract-txt-bin-portions.pl+extract-partened.sh, archivo OUTPUT: txt-bin-portions.txt, extract-partened.log 3) Sacar archivos bin y mixtos-txt-bin originales: move-partened, INPUT: txt-bin-portions.txt, OUTPUT: TXT-not-messenger-2, move-partened.log 4) Ídem paso 1 (para repetir el filtro dentro de las porciones txt extraídas, que podrían no pasar el filtrado aún si el archivo original del paso 1 sí), OUTPUT: report-messenger-2.txt, TXT-not-messenger-3 5) Limpiar caracteres nulos esporádicos: strip-nulls.pl+move-reported-files.sh, OUTPUT: strip-nulls.txt, TXT-not-messenger-4 6) Hacer un reporte actual de DatetTime y SessionId, Backup del TXT delete de los "not matches" del reporte (de la carpeta origen TXT), OUTPUT: report-timestamp-SessionID.txt, TXT-backup 7) Separación de archivos: Criterio de busqueda de punto de corte: - Aplicado: SessionID no creciente o no consecutiva - No aplicado: Cambio del conjunto FriendlyName (sin un Join que lo justifique) Concatenación de archivos: Compilación de conversaciones por SessionID: inclusión completa (entre 2 archivos), no inclusión completa, noSessionID (no cumple el patron de busqueda) último conjunto FriendlyName archivo 1 = primer conjunto FriendlyName archivo 2 último SessionID archivo 1 = primer SessionId archivo 2 último SessionID archivo 1 +1 = primer SessionId archivo 2 | último DateTime archivo 1 - primer DateTime archivo 2 | < umbral | Número nombre de archivo 1 - número nombre de archivo 2 | < umbral tokens-main.pl tokensV2.pm user-pivot-database.tif user-glob-grep.pl user-last.pl user-list.pl user-list-database.pl output: user-list.txt user-not-pivot.txt user-pivot-*.txt