#!/bin/sh # Note generating test data # may take a while # using 'printf' instead of 'echo' # due to performance issues random_file() { { for ((i=1; i<=$2; i++)); do printf "%d\t%d\n" $((RANDOM)) $((RANDOM)) done } > "$1" } sorted_file() { { for ((i=1; i<=$2; i++)); do printf "%d\t%d\n" $i $i done } > "$1" } reverse_file() { { for ((i=$2; i>=1; i--)); do printf "%d\t%d\n" $i $i done } > "$1" } mkdir -p data sizes=() # start with 0 if you want for ((i=0; i<=100; i++)); do int=${i%.*} sizes+=( $((1000*i)) ) done types=("random" "sorted" "reverse") for data_type in "${types[@]}"; do for size in "${sizes[@]}"; do for run in {1..3}; do outfile="data/${data_type}_${size}_${run}.tsv" # '.tsv' stands for echo "Generating $outfile ..." # tab seperated values if [ "$data_type" = "sorted" ]; then sorted_file $outfile $size elif [ "$data_type" = "reverse" ]; then reverse_file $outfile $size else random_file $outfile $size fi done done done echo "All random data files gernated in ./data/"