По логике скрипта - в /etc/login.defs должны быть те самые пределы, в которых находятся системные аккаунты. Если это не так - внесите соответствующие изменения или тупо захардкодьте.
This only lists supplementary group memberships, not the user who have this group as their primary group. And it only finds local groups, not groups from a network service such as LDAP.
Самый тупой способ - в цикле сравнивать первый столбец с 1000 или, если возможны варианты с ведущими нулями - считать количество символов (см. ${#VAR}).
Можно же отсортировать вывод find`а и только потом натравливать на список convert. Например связкой find | sort | xargs convert, но вообще вариантов много.