#!/usr/bin/perl

# A quick and drity text parser for the timing output from Chaste cell-based simulations in parallel.

# Pass in command line arguments 0 = base string for the raw results file e.g. if results are in TestChaste.x for 1=<x=<N then arg 0 should be "TestChaste." , 1 = base string for output parsed results, 2 = number of files.
 for ($i = 1; $i <= $ARGV[2]; $i++)
 {
	 open (MYREADFILE, "<$ARGV[0]$i");
	 open (MYWRITEFILE, ">$ARGV[1]$i");
	 while (<MYREADFILE>) {

		#Get basic input into the correct variable
		if ($i != 1){
			next if !(/^  \d/);	
		}
		else
		{
			next if !(/   /);
			next if (/Setup/);
		}

		#next if /R/;	#ignore lines beginning with text
		#next if /E/;
		#next if /P/;
		#next if /O/;
		#next if /Setup/;
	 	chomp;
		@Headers = split(/   /);

		#Adjust all but Setup to remove first two spaces
		foreach $i (@Headers) {
		#Remove Trailing percentage stuff and any white space before or after
		    $i =~ s/^\s+//;
		    $i =~ s/\(.*//;
		    $i =~ s/\s+$//;
		}

		#Output to file in required format.
		print MYWRITEFILE "$Headers[1] $Headers[2] $Headers[3] $Headers[4] $Headers[5] $Headers[6] $Headers[7] $Headers[8] $Headers[9] $Headers[10] $Headers[11] $Headers[12] $Headers[13] \n";

	 }
	 close (MYREADFILE);
 }
