¿Cómo mostrar espacios en blanco finales en el archivo de texto?

¿Cómo mostrar espacios en blanco finales en el archivo de texto?

Me gustaría poder imprimir y ver los espacios en blanco finales en el archivo de texto (solo mostrarlos, no eliminarlos).

Intenté cat -vmostrar caracteres que no se imprimen, pero no los muestra como se esperaba (no hay diferencia visual entre las líneas). P.ej

$ printf "foo\nbar \t\n" > file.txt
$ cat -v file.txt 
foo
bar     

Por imprimir/mostrar espacios en blanco me refiero a alguna indicación visual humana de que el espacio en blanco final está ahí en comparación con otras líneas sin, ya sea por algún carácter especial, color (como cuando los archivos se muestran usando git diff) o algo similar.

¿Hay alguna otra manera?


Nota: Estoy en macOS Sierra, sin embargo, tengo acceso a catlos comandos GNU y BSD:

$ type -a cat
cat is /usr/local/opt/coreutils/libexec/gnubin/cat
cat is /bin/cat
$ cat --version
cat (GNU coreutils) 8.28
$ /bin/cat --version
/bin/cat: illegal option -- -
usage: cat [-benstuv] [file ...]

Respuesta1

gnu cattiene el -Einterruptor para eso, así que con una entrada como

printf " one \ntwo \t\n"

se imprimirá

 one $
two    $

Hay muchas formas de emular ese comportamiento, por ejemplo, usarlo seden modo "sin formato":

sed -n l infile

o

paste -d '$' infile /dev/null

o utilice cualquier herramienta de procesamiento de texto para agregar un $antes de cada nueva línea...

También puedes probar algo como

less -p '[[:blank:]]+$' infile

que resaltará el patrón (en este caso los espacios en blanco finales)...

información relacionada