# Datos de entrada: un fichero de texto con los datos separados por tabulaciones # posición de los datos # 1:Blog 2: día 3:fecha 4:Url 5:antecedente 6:sexo # Datos de salida: fichero en formato dot con resticciones de colocación de los nodos por nivel de propagación BEGIN { # Tratamiento inicial del filtro: se genera la cabecera del fichero dot printf "digraph enjutas \{\n" print "\{\n" print " node [shape=plaintext, fontsize=45];\n" /* the time-line graph */ printf "\"N-1\" -> \"N-2\"-> \"N-3\" -> \"N-4\" -> \"N-5\" -> \"N-6\" -> \"N-7\" -> \"N-8\" -> \"N-9\";\n" print "\}\n" printf "node [ color=Green,fontcolor=Black,font=Courier,style=filled];\n" #print "node [shape=epsf, shapefile=\"chica-30x30.gif\" ,fontcolor=Black,font=Courier,style=filled];\n" printf "edge [color=Red];\n" # limitación del tamaño del gráfico printf "ranksep=.75; size = \"13,13\";\n" i=0 } { # tratamiento para cada una de las filas del fichero array_name[i]=$1 array_fecha[i]= $3 array_url[i]= $4 array_antecedente[i]=$5 array_nombre[i]=$1 array_num_hijos[i]=0 array_padre[i]=0 array_nivel[i]=0 array_path[i,0]="" array_genero[i]=$6 if ((i > 0) && ($2 < dia)) { if ($6 =="M") printf "%s [color=darkorchid2];\n",i if ($6 =="H") printf "%s [color=brown2];\n",i # calculo el ordinal de su padre for (j=0; j <=i; j++) { antecedente= array_url[j] if (match ($5, antecedente) ==1) { array_num_hijos[j]= array_num_hijos[j]+1 array_nivel[i]=array_nivel[j]+1 nivel=array_nivel[i] for (k=0; k ",j break } } printf "\"%s\" ",i printf ";\n " } i=i+1 } END { # tratamiento final del fichero, se inserta token de cierre printf "\n}\n " }