#!/bin/bash gather() { for dataset in mwu_AR_coc81_* do gawk 'BEGIN{FS=OFS=","} $1 !~ "key" {n++; array[n,1] = $1; array[n,2] = $4;} END{ if (n > 1) for (i=1; i<=n; i++) print array[i,1],array[i,2],"AR","COC81"; }' $dataset; done for dataset in mwu_MER_coc81_* do gawk 'BEGIN{FS=OFS=","} $1 !~ "key" {n++; array[n,1] = $1; array[n,2] = $4;} END{ if (n > 1) for (i=1; i<=n; i++) print array[i,1],array[i,2],"MER","COC81"; }' $dataset; done for dataset in mwu_MRE_coc81_* do gawk 'BEGIN{FS=OFS=","} $1 !~ "key" {n++; array[n,1] = $1; array[n,2] = $4;} END{ if (n > 1) for (i=1; i<=n; i++) print array[i,1],array[i,2],"MRE","COC81"; }' $dataset; done for dataset in mwu_AR_nasa93_* do gawk 'BEGIN{FS=OFS=","} $1 !~ "key" {n++; array[n,1] = $1; array[n,2] = $4;} END{ if (n > 1) for (i=1; i<=n; i++) print array[i,1],array[i,2],"AR","NASA93"; }' $dataset; done for dataset in mwu_MER_nasa93_* do gawk 'BEGIN{FS=OFS=","} $1 !~ "key" {n++; array[n,1] = $1; array[n,2] = $4;} END{ if (n > 1) for (i=1; i<=n; i++) print array[i,1],array[i,2],"MER","NASA93"; }' $dataset; done for dataset in mwu_MRE_nasa93_* do gawk 'BEGIN{FS=OFS=","} $1 !~ "key" {n++; array[n,1] = $1; array[n,2] = $4;} END{ if (n > 1) for (i=1; i<=n; i++) print array[i,1],array[i,2],"MRE","NASA93"; }' $dataset; done } sum() { gawk 'BEGIN{FS=","; OFS="\t";} { if ($3 == "AR" && $4 == "COC81") arrayAR_COC81[$1] += $2; else if ($3 == "MER" && $4 == "COC81") arrayMER_COC81[$1] += $2; else if ($3 == "MRE" && $4 == "COC81") arrayMRE_COC81[$1] += $2; else if ($3 == "AR" && $4 == "NASA93") arrayAR_NASA93[$1] += $2; else if ($3 == "MER" && $4 == "NASA93") arrayMER_NASA93[$1] += $2; else if ($3 == "MRE" && $4 == "NASA93") arrayMRE_NASA93[$1] += $2; } END{ k = 0; for (key in arrayAR_COC81) { k++; sortedArray[k,1] = key; sortedArray[k,2] = arrayAR_COC81[key]; sortedArray[k,3] = arrayAR_NASA93[key]; sortedArray[k,4] = arrayMER_COC81[key]; sortedArray[k,5] = arrayMER_NASA93[key]; sortedArray[k,6] = arrayMRE_COC81[key]; sortedArray[k,7] = arrayMRE_NASA93[key]; } #sorting the array using insertion sort for (i = 1; i <= k; i++) { tempKey = sortedArray[i,1]; tempAR1 = sortedArray[i,2]; tempAR2 = sortedArray[i,3]; tempMER1 = sortedArray[i,4]; tempMER2 = sortedArray[i,5]; tempMRE1 = sortedArray[i,6]; tempMRE2 = sortedArray[i,7]; j = i; while ((j > 1) && (sortedArray[j-1,2] > tempAR1)) { sortedArray[j,1] = sortedArray[j-1,1]; sortedArray[j,2] = sortedArray[j-1,2]; sortedArray[j,3] = sortedArray[j-1,3]; sortedArray[j,4] = sortedArray[j-1,4]; sortedArray[j,5] = sortedArray[j-1,5]; sortedArray[j,6] = sortedArray[j-1,6]; sortedArray[j,7] = sortedArray[j-1,7]; j = j - 1; } sortedArray[j,1] = tempKey; sortedArray[j,2] = tempAR1; sortedArray[j,3] = tempAR2; sortedArray[j,4] = tempMER1; sortedArray[j,5] = tempMER2; sortedArray[j,6] = tempMRE1; sortedArray[j,7] = tempMRE2; } for (i = 1; i <= k; i++) print i,sortedArray[i,1], sortedArray[i,2], sortedArray[i,3], sortedArray[i,4], sortedArray[i,5], sortedArray[i,6], sortedArray[i,7]; } ' $1; } report() { gawk 'BEGIN {FS = "\t"; OFS = ",";} { n++; arrayAR_COC81[n,1] = $2; arrayAR_COC81[n,2] = $3; arrayMER_COC81[n,1] = $2; arrayMER_COC81[n,2] = $4; arrayMRE_COC81[n,1] = $2; arrayMRE_COC81[n,2] = $5; arrayAR_NASA93[n,1] = $2; arrayAR_NASA93[n,2] = $6; arrayMER_NASA93[n,1] = $2; arrayMER_NASA93[n,2] = $7; arrayMRE_NASA93[n,1] = $2; arrayMRE_NASA93[n,2] = $8; } END { arraySort(arrayAR_COC81,n); arraySort(arrayMER_COC81,n); arraySort(arrayMRE_COC81,n); arraySort(arrayAR_NASA93,n); arraySort(arrayMER_NASA93,n); arraySort(arrayMRE_NASA93,n); top = 20; for (i = 1; i <= top; i++) { countArray[arrayAR_COC81[i,1]]++; countArray[arrayMER_COC81[i,1]]++; countArray[arrayMRE_COC81[i,1]]++; countArray[arrayAR_NASA93[i,1]]++; countArray[arrayMER_NASA93[i,1]]++; countArray[arrayMRE_NASA93[i,1]]++; } for (key in countArray) if (countArray[key] == 6) print key; } function arraySort(inputArray,size) { for (i = 1; i <= size; i++) { tempKey = inputArray[i,1]; tempValue = inputArray[i,2]; j = i; while ((j > 1) && (inputArray[j-1,2] > tempValue)) { inputArray[j,1] = inputArray[j-1,1]; inputArray[j,2] = inputArray[j-1,2]; j = j - 1; } inputArray[j,1] = tempKey; inputArray[j,2] = tempValue; } } ' $1; } cd .. for ((i = 1; i <= 4; i++)) do cd run$i gather > temp; sum temp > ../results$i; rm temp report ../results$i > ../best$i; cd .. done cat best* | sort -k 1 | uniq -c | sed 's/ //g' | sed 's/ /,/g' | sort -k 1 -n -r > shared gnuplot <