Cómo enumerar todos los files en el índice de Git sin nueva línea al final del file

Tengo una herramienta de fusión que desafortunadamente elimina las nuevas líneas al final de los files. Entonces, después de usar esta herramienta, necesito verificar si alguno de los files en el índice Git tiene sus nuevas líneas finales eliminadas.

git diff --cached muestra estas eliminaciones de nueva línea, pero también imprime la diferencia completa. Me gustaría get una vista más concisa que solo enumera los nombres de file de los files modificados en el índice Git que carecen de la nueva línea final.

Traté de combinar git diff --name-only y git grep , pero no puedo encontrar una expresión regular para detectar files sin nueva línea al final del file. Las expresiones que incluyen \Z no parecen ser reconocidas por git grep incluso con expresiones regulares extendidas ( -E ).

La combinación de la respuesta a esta pregunta relacionada con algo de magia Bash finalmente me llevó a esta solución:

 for file in $(git diff --cached --name-only); do test $(tail -c 1 $file) && echo $file; done