Решение awk
без отдельной трубы и подоболочки для сортировки может быть:
awk '$2 == "a" {arr[$3]} END {for (i in arr) print "a", i}' file
Вы просто сохраняете age
как индексы в массиве, а затем выводите индексы в конце, что обеспечивает внутреннюю сортировку без отдельного процесса, например,
Пример использования / Вывод
$ awk '$2 == "a" {arr[$3]} END {for (i in arr) print "a", i}' file
a 20
a 24
Позвонив по внешнему sort
, вы можете уменьшить количество набираемых символов, но затем получить дополнительные служебные данные канала, а также подоболочку, необходимую для sort
, например,
awk '$2 == "a" {print $2, $3}' file | sort
(тот же вывод)