#!/usr/bin/gawk -f
# ___ _ _ ____ ___ ___ ____ ___ ____
# | \ | | | | | |__| |__] |___
# |__/ |__| |___ | | | | | |___
#
# The scripts were written to be usefull in
# a research enviornment, but anyone is welcome
# to use them. Happy awking. -Tim Sherwood
#
# arrayify.awk
# Perhaps the most useful script in the bunch, this takes a list of data
# (as can be easily created by greping though all of your data files)
# and puts it into a big array (from which you can easily make tables and graphs.
# It's pretty simple, but a very versatile tool.
#####################
BEGIN {
name = "THISAINTGONNAMATCH";
num_names = 0;
num_stats = 0;
FS = ":"
}
#####################
{
if ( name!=$1 ){
name = $1;
if ( !(name in name_in) ) {
name_array[num_names] = name;
name_in[name] = 1;
num_names++;
}
}
if ( !($2 in stat_names) ){
stat_names[$2] = 1;
stat_list[num_stats] = $2;
num_stats++;
}
stat_array[name,$2] = $3;
}
#####################
END {
###print the header
printf "name";
for( j=0; j<num_stats; j++ )
{
printf ":%s", stat_list[j];
}
printf "\n";
##print the data
for( i=0; i<num_names; i++ )
{
printf "%s", name_array[i];
for( j=0; j<num_stats; j++ )
{
printf ":%s", stat_array[name_array[i],stat_list[j]];
}
printf "\n";
}
}