O, posiblemente, encuentre aquí la "chuleta" que me permita salir del paso.
Tarea número 1: aprender a usar sed. Claramente es la solución a este problema pero mi manejo del mismo es terriblemente básico.
Aquí el escenario:
Tengo un extracto de un sistema de biblioteca (OMP) que por las limitaciones del mismo no llega a cumplir las necesidades del momento (no se puede filtrar la salida por campos, no se puede seleccionar períodos, no se puede, no se puede, etc)
De este extracto, que termina siendo una página html con formato de base de datos semejante a vcf, tengo que obtener al menos un archivo csv.
Todo parece muy sencillo pero sin conocimiento no hay nigún programa ni conversor en linea que resuelva la necesidad.
Asi es que, de un archivo que tiene este formato:
Tengo que obtener un archivo de campos separados por comas.TextoTL : 574.526.323 A327 Resultado 1 de 179Autor : Albariño, Ricardo JTítulo : Análisis de la fracción macrozoobentónica en un cuerpo lótico andinoOcultar DetallesInstitución : Universidad Nacional del Comahue, Centro Regional Universitario BarilocheCiudad : San Carlos de BarilocheAño : 1994Páginas : 66 pDescriptores : LIMNOLOGIA - PATAGONIA - TL -Grado Académico : TL.
la forma en que lo logré es la siguiente:
quitamos las lineas vacías:
cat graduados.txt |sed -e '/^$/d'>grad.txt
Sacamos aquellos campos que generan conflicto y rompen el loop:
grep -v Editorial grad.txt|grep -v Ciudad|grep -v Ocultar|grep -v Páginas>grad1.txt
concatenamos los campos separandolos con el caracter "@"
cat grad1.txt|sed '$!N;s/\n/@/;$!N;s/\n/@/;$!N;s/\n/@/;$!N;s/\n/@/;$!N;s/\n/@/;$!N;s/\n/@/;'>grad2.txt
Depuramos columnas con desprolijidades
cat sacar.txt |awk '{print $1,$2,$7}'Y ya tenemos nuestra base de datos para manippularla a placer y hacer estadísticas, etc,etc.
______________________________________________________
Esto no es un tutorial de "copy&paste" sino una bitacora que puede servir de ayuda
Fuentes:
https://jinetedeldragon.wordpress.com/2009/06/22/sed-en-una-linea-sed-one-liners-parte-i/
No hay comentarios:
Publicar un comentario