Usando grep en archivos de texto de estilo Mac

5

Cuando ejecuto grep en un archivo de texto, obtengo resultados sin sentido. Parece como si todo el archivo se imprimiera pero en una sola línea sobrescribiéndose. Leí que en la Mac, los archivos de texto usan \ r en lugar de lo normal \ n como una línea que termina. Eso lo explicaría, pero ¿cómo hacer que grep se trate como si fuera \ n?

Estoy usando Snow Leopard OS X, y soy bastante nuevo en usar cualquier cosa de Apple, pero un programador de Linux desde hace mucho tiempo.

    
pregunta DarenW 29.06.2011 - 18:53

2 respuestas

8

No puede cambiar el comportamiento de grep , pero puede cambiar el archivo que ve:

tr '\r' '\n' <file | grep foo

Además, los finales de línea \r son heredados en estos días; OS X usa oficialmente \n , aunque todavía hay cosas que no se han actualizado. En particular, AppleScript aún no se ha puesto al día, lo que también se muestra en su uso de rutas de archivos pre-OS X de forma predeterminada y requiere que POSIX file indique rutas nativas de OS X; Además, muchas aplicaciones de Carbon siguen utilizando \r , siendo Carbon un marco de transición de Mac OS 9 a OS X.

    
respondido por el geekosaur 29.06.2011 - 19:06
1

Una utilidad heredada común para manejar los finales de línea es flip . Realiza la transformación in situ para archivos entre Unix, DOS / Windows, formatos heredados de fin de línea de Mac, y también puede muestrear un archivo para que sepa qué tipo cree que es actualmente. No se incluye con OSX, pero puede obtener archivos binarios del enlace y de la fuente.

En este caso, primero puedes flip -u yourFile.txt para asegurarte de que está utilizando líneas nuevas y no saltos de línea para demarcar las líneas, y luego usar grep en ellas.

    
respondido por el Viktor Haag 29.06.2011 - 19:31

Lea otras preguntas en las etiquetas