¿Cómo grep whitespace excluye el carácter de nueva línea?

Hoy necesito verificar qué líneas de mis files contienen espacios en blanco al final. Y descubrí una solución:

grep -Enr --color "\s+$" ./ 

Esto funciona bien, excepto en aquellas líneas que contienen caracteres de línea nueva que no son de Unix.

Estos caracteres de nueva línea considerarán una coincidencia válida para \s .

Cómo excluirlos en OSX grep ?

Suponiendo que quiere decir que no quiere hacer coincidir \r , puede especificar que está buscando una pestaña o un espacio y nada más:

 grep -P '[\t ]$' file 

Como está en OSX, su grep no tendrá -P , por lo que podría intentar:

 grep -E $'\t'"| $" file 

Alternativamente, puede usar la class de caracteres POSIX:

 grep '[[:blank:]]$' file 

Como se explica en man wctype , la class de caracteres [[:blank:]] "realiza la function de sorting isblank (3)" y, como se explica en man isblank , es decir:

  isblank() checks for a blank character; that is, a space or a tab. 

Finalmente, también puedes usar otra herramienta:

  sed -n '/[\t ]$/p' file perl -ne 'print if /[\t ]$/' file