#! /bin/bash #set -x FILE_IN="${1}" left_list=() right_list=() while read -r l; do echo "reading new line [$l]" IFS=" " read -ra line_split <<< "${l}" unset IFS echo "first number [${line_split[0]}]" echo "second number [${line_split[1]}]" left_list+=("${line_split[0]}") right_list+=("${line_split[1]}") done <"$FILE_IN" echo "${left_list[@]}" echo "${right_list[@]}" if [[ ${#left_list[@]} -ne ${#right_list[@]} ]]; then echo "arrays dont match, wtf?" exit 1 else echo "length of lists ${#left_list[@]}" fi echo "sorting time" IFS=$'\n' mapfile sorted_left_list <<<"$(sort <<<"${left_list[*]}")" mapfile sorted_right_list <<<"$(sort <<<"${right_list[*]}")" unset IFS echo "${sorted_left_list[@]}" echo "${sorted_right_list[@]}" sorted_list_diff=() echo "adding time" for i in "${!sorted_left_list[@]}"; do echo "left index: ${i} value: ${sorted_left_list[$i]}" echo "right index: ${i} value: ${sorted_right_list[$i]}" i_diff=$((${sorted_left_list[$i]}-${sorted_right_list[$i]})) echo "diff ${i_diff}" sorted_list_diff+=("${i_diff#-}") done echo "${sorted_list_diff[@]}" final_out=0 for v in "${sorted_list_diff[@]}"; do final_out=$((final_out + v)) done echo "final output: ${final_out}"