Вам нужно установить вашу переменную DISPLAY перед запуском скрипта.
Try:
DISPLAY=:0 yourscriptname
Я предлагаю использовать pv
для подсчета линий в трубе. С помощью pv вы можете шаг за шагом найти узкое место.
cat data.tsv | pv -lr > /dev/null
cat data.tsv | cut -f1,5,8,12 | pv -lr > /dev/null
cat data.tsv | cut -f1,5,8,12 | sort | pv -lr > /dev/null
cat data.tsv | cut -f1,5,8,12 | sort | uniq -c | pv -lr > /dev/null
...
Пример вывода pv‘s:
timeout 10 yes | sed 's/yes/foo/' | rev | pv -lr >/dev/null
[ 120k/s]