Eu baixei um arquivo csv que tem ^ M para linha final, se eu tento visualizar o arquivo com 'cat' ele da uma saída com fio

0

Aqui está o aspecto do ficheiro (pode ver que é um ficheiro separado por vírgulas, em que a primeira coluna de cada linha é o nome da equipa que é seguido, precedido por ^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

como posso torná-lo um arquivo normal, ou seja, não acho que as linhas devam terminar com ^M .

    
por Bhail 25.10.2017 / 01:08

2 respostas

1

^M é 0x15, a.k.a. Retorno de carro. Suas linhas terminam com o par CRLF do DOS em vez do LF usado em arquivos de texto Unix. Isso pode ser corrigido com tr :

tr -d '\r' <dosfile >unixfile

Há também os comandos fromdos (e todos ) no pacote tofrodos , bem como os comandos dos2unix (e unix2dos ) no pacote dos2unix . Os dois últimos são mais completos do que apenas tr , eles também podem converter de páginas de códigos DOS / Windows (ou mesmo do Windows UTF-16 para UTF-8).

    
por 25.10.2017 / 02:06
0

O provável problema é que o arquivo foi criado em um sistema Windows. Para corrigir:

vi file

<ESC> para garantir que você esteja no modo de comando

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

:wq

Isso substitui todas as instâncias de ^ M por uma nova linha.

P.S. Eu recomendo fazer uma cópia do arquivo antes de editá-lo em caso de problemas.

    
por 25.10.2017 / 01:50

Tags