Como posso fazer alterações neste arquivo?

0

Eu tenho esses 3 arquivos

21/08/2014  07:15 PM               122 Tw2AWK.csv
21/08/2014  07:15 PM               125 Tw2Notepad.csv
21/08/2014  07:15 PM               119 Tw2REPL.csv

Arquivo C: \ myfiles > Tw2AWK.csv TwREPL.csv Tw2Notepad.csv

Tw2AWK.csv;     UTF-8 Unicode text, with CRLF line terminators
Tw2REPL.csv;     UTF-8 Unicode text
Tw2Notepad.csv; UTF-8 Unicode (with BOM) text, with CRLF line terminators

HEX desses arquivos é o seguinte

C: \ myfiles > xxd -p Tw2REPL.csv

0a222344656c686947616e675261706520776173206120736d616c6c2069
6e636964656e7420746f2023536d616c6c5261706973744a6169746c6579
20646e61696e6469612e636f6d2f696e6469612f7265706f72742d69e280
a6207069632e747769747465722e636f6d2f6762565070776637744f22

C: \ myfiles > xxd -p Tw2AWK.csv

0d0a222344656c686947616e675261706520776173206120736d616c6c20
696e636964656e7420746f2023536d616c6c5261706973744a6169746c65
7920646e61696e6469612e636f6d2f696e6469612f7265706f72742d69e2
80a6207069632e747769747465722e636f6d2f6762565070776637744f22
0d0a

C: \ myfiles > xxd -p Tw2Notepad.csv

efbbbf0d0a222344656c686947616e675261706520776173206120736d61
6c6c20696e636964656e7420746f2023536d616c6c5261706973744a6169
746c657920646e61696e6469612e636f6d2f696e6469612f7265706f7274
2d69e280a6207069632e747769747465722e636f6d2f6762565070776637
744f220d0a

Eu quero que o Tw2REPL.csv seja parecido com o Tw2Notepad.csv Como posso fazer isso?

NOTA: Eu fiz isso tudo via linha de comando. Eu posso usar qualquer exe autônomo de terceiros embora. Eu estou no Windows XP

Por favor me ajude, é muito importante para mim

    
por SuperUserMan 22.08.2014 / 09:05

1 resposta

2

Primeiro, adicione os bytes ef bb bf (U + FEFF codificado em UTF-8) ao início do arquivo. É a marca de ordem de bytes, que foi inventada para o UTF-16 e não faz muito sentido para o UTF-8, embora alguns programas dependam disso.

$ (echo ef bb bf; xxd -p file.csv) | xxd -r -p > file.csv.new

C:\> (echo ef bb bf & xxd -p file.csv) | xxd -r -p > file.csv.new

Em seguida, converta as terminações de linha Unix (LF 0a ) no formato Windows (CR LF 0d 0a ).

    $ unix2dos file.csv
or: $ todos file.csv
or: $ sed "s/$/\r/" file.csv > file.csv.new

Como você tem xxd , presumo que você também tenha o Vim. Você pode fazer isso no Vim abrindo o arquivo e usando:

:set bomb ff=dos
:w
    
por 22.08.2014 / 09:40