#!/bin/sh DATA_DIR="data" SRC_DIR="../src" SORTER="$SRC_DIR/sorter" OUTPUT_STRING="type,size,real,user,sys" for TEST_FILE in "$DATA_DIR"/*; do FILE_NAME=$(basename "$TEST_FILE") echo "Benchmarking $FILE_NAME ..." # Run the command and capture timing TIME_OUTPUT=$({ time $SORTER "$TEST_FILE" >/dev/null; } 2>&1) # Extract real, user, sys in seconds REAL=$(echo "$TIME_OUTPUT" | awk '/real/ {split($2,a,"m"); split(a[2],b,"s"); print a[1]*60 + b[1]}') USER=$(echo "$TIME_OUTPUT" | awk '/user/ {split($2,a,"m"); split(a[2],b,"s"); print a[1]*60 + b[1]}') SYS=$(echo "$TIME_OUTPUT" | awk '/sys/ {split($2,a,"m"); split(a[2],b,"s"); print a[1]*60 + b[1]}') # Remove prefix and suffix # type_size_n.tsv TYPE="${FILE_NAME%%_*}" # before first _ rest="${FILE_NAME#*_}" # after first _ TEST_SIZE="${rest%%_*}" # before next _ # Add entry to JSON string OUTPUT_STRING="$OUTPUT_STRING $TYPE,$TEST_SIZE,$REAL,$USER,$SYS" done # Write to file echo "$OUTPUT_STRING" > benchmark_results.csv