Você não precisa invocar ls
para obter as informações de stat
, find
já fez isso. Use algo assim em vez disso (mesma saída que ls -ln
):
find -follow \( -group 39 -o -acl_group 39 \) -printf '%M %n %U %G %s %Cb %Cd %CH:%CM %p\n'
Veja a seção 3.2.2 do manual de busca GNU para mais informações sobre as diretrizes de formato.
Editar
Para aplicar isso a vários IDs de grupo de um arquivo:
while read; do
find -follow \( -group $REPLY -o -acl_group $REPLY \) \
-printf '%M %n %U %G %s %Cb %Cd %CH:%CM %p\n' \
1> $HOME/results.$REPLY.log \
2> $HOME/error.$REPLY.log
done < group_id_file