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)?
                    
                        command-line
                                
                    
                    
                        EcomEvo
fuente
                
                fuente

\npartir de Mac OS X 10.0 (2001). ¿Realmente obtienes archivos antiguos de Mac\r?Respuestas:
Sugeriría inspeccionar los archivos que está manejando con el estilo de alimentación de línea que se utiliza en ellos.
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' }fuente