#!/bin/sh

cat >skript.sed <<\KONEC
# smaze header 1 tabulky
1,/^|[=+]*|$/d
# smaze posledni tabulku
/^+-*+$/,$d
# smaze oddelujici radky
/^+[+-]*+$/d
# smaze prazdny radek mezi tabulkami
/^[[:space:]]*$/d
N
# rozparsuje info a vypise 
# ID TEMP MEM MEM_MAX
s/|[ ]*\([0-9]*\) .*\n|[ ]*[0-9]*%[ ]*\([0-9]*\)C .*|[[:space:]]*\([0-9]*\)MiB[[:space:]]*\/[[:space:]]*\([0-9]*\)MiB.*$/\1 \2 \3 \4/p
KONEC

cat nvidia-smi.txt | sed -n -f skript.sed  \
	 | while read id temp mem mem_max ;  do 
		# mame aspon pul volne pameti?
		# flag je 0 nebo 1
		mem_flag=$( echo "$mem < $mem_max / 2" | bc )
		echo $id $temp $mem_flag
		

		# tridime stabilne, napred podle teploty
		# potom podle flagu (0 je spatne, 1 dobre, proto reverse)
	done | sort -s -k 2,2 | sort -s --reverse -k 3,3 | sed -n '1s/^\([0-9]*\) .*$/gpu\1/p'
