Оболочка может хранить переменные среды любым удобным для нее способом. Это не совсем актуально. Важно то, что оболочка должна иметь возможность передать среду дочернему процессу (, включая printenv
), посредством системного вызова execve
.
Я бы попробовал
awk '!a[$1 $2 $3]++ { print ;}' file
где
!a[$1 $2 $3]++
будет оцениваться как true при первом нахождении этих значений. см. Как работает awk '!a[$0]++'? для более подробной информации.