Descargo un archivo csv que tiene ^ M para el final de la línea, si intento ver el archivo con `cat` da una salida cableada


0

A continuación se muestra el aspecto del archivo (puede ver que es un archivo separado por comas donde la primera columna de cada fila es el nombre del 'Equipo' seguido de ^M ):

Team,League,Games Played,At Bats,Runs,Hits,Doubles,Triples,Home Runs,RBI,Stolen Bases,Caught Stealing,Walks,Strike Outs,Intentional Walks,Hit By Pitch,Sacrifice Hits,Sacrifice Flies,Grounded Into Double Play,Batting Average,On Base Percentage,Slugging Percentage,Salary,Position,x,y,Player Name,Plate Appearences,Singles,Total Bases,Runs Created,ExpWS,Win Shares Percentage,Win Shares Above Bat,Win Shares,Career Win Shares,OnBase + Slugging^MDetroit,AL,86,343,58,116,20,2,6,36,4,3,21,16,0,8,2,4,9,0.338,0.386,0.461,4600000,2B,2.8,4,Placido Polanco,378,88,158,57.26455026,10,0.749,8,15,96,0.846^MNY Mets,NL,87,275,36,66,13,0,11,29,0,1,32,39,7,2,2,2,12,0.24,0.322,0.407,3750000,1B,3.6,3.5,Doug Mientkiewicz,313,42,112,35.06709265,9,0.195,-3,3,66,0.729^MDetroit,AL,87,334,48,107,15,4,5,23,2,3,24,45,3,2,0,1,9,0.32,0.368,0.434,4000000,SS,1.2,4,Carlos Guillen,361,83,145,52.61772853,9,0.418,1,8,79,0.803^MWashington,NL,87,309,38,85,21,2,7,32,0,0,31,30,3,1,2,4,9,0.275,0.339,0.424,7000000,2B,2.8,4,Jose Vidro,347,55,131,43.7925072,9,0.589,4,11,130,0.763^MNY Mets,NL,87,267,31,68,9,4,3,24,6,1,14,43,1,5,5,4,2,0.255,0.3,0.352,7033333,2B,2.8,4,Kazuo Matsui,295,52,94,26.12881356,8,0.294,-1,5,19,0.652^MArizona,NL,88,161,23,37,6,1,4,20,3

¿Cómo puedo hacer que sea un archivo normal, es decir, no creo que las líneas deban terminar con ^M.

Respuestas:


1

^M es 0x15, a.k.a. Retorno de carro. Sus líneas terminan con el par CRLF DOS-ish en lugar de solo el LF utilizado en los archivos de texto Unix. Esto se puede arreglar con tr:

tr -d '\r' <dosfile >unixfile

Tambien hay fromdos (y todos ) comandos en el paquete tofrodos tanto como dos2unix (y unix2dos ) comandos en el paquete dos2unix. Los dos últimos son más completos que solo tr, también pueden convertir de páginas de códigos DOS / Windows (o incluso de Windows UTF-16 a UTF-8).


0

El problema probable es que el archivo fue creado en un sistema de Windows. Arreglar:

vi file

<ESC> para asegurarse de que está en modo de comando

:%s/<CTRL>-V<CTRL>-M/\r/g

:wq

Esto reemplaza cada instancia de ^ M con una nueva línea.

PD Recomiendo hacer una copia del archivo antes de editarlo en caso de problemas.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.