Contando nuevas líneas o retornos de carro pero no ambos

0

Si hago esto en un archivo Mac, obtengo el número correcto de líneas, pero obtengo el doble de líneas en los archivos Unix:

cat /path/to/file.txt | tr '\r' '\n' | wc -l

Si hago esto en un archivo Unix, obtengo el número correcto de líneas pero cero líneas en un archivo Mac:

cat /path/to/file.txt | wc -l

¿Cómo obtengo el número correcto de líneas en un solo comando sin importar el origen del sistema de archivos (Linux, Mac, Windows)?

EcomEvo
fuente
Macs utilizan a \npartir de Mac OS X 10.0 (2001). ¿Realmente obtienes archivos antiguos de Mac \r?
Melebius
@Melebius sí, cuando se trata de la versión Mac de Excel.
EcomEvo

Respuestas:

0

Sugeriría inspeccionar los archivos que está manejando con el estilo de alimentación de línea que se utiliza en ellos.

$ od -t x1z

imprimirá el contenido del archivo en bytes hexadecimales y "ASCII", busque bytes 0A y 0D.

Tengo una función bash que se define en ~ / .profile / o ~ / .bashrc para ayudar con este tipo de problemas:

función od-crlf {
#DOC echo "ARCHIVO od-crlf - muestra el contenido del archivo en caracteres HEX w CR + LF enfatizados"

  od -Ax -t x1z -w32 $ @ \
  El | sed -re 's / (0a) / \ x1b [44m \ 1 \ x1b [m / g; s / (0d) / \ x1b [45m \ 1 \ x1b [m / g'
}
Hannu
fuente