Como posso fazer alterações neste arquivo de codificação?


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

C: \ myfiles> arquivo 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

Quero que Tw2REPL.csv se pareça com Tw2Notepad.csv Como posso fazer isso?

NOTA: Eu tenho que fazer isso tudo via linha de comando. Eu posso usar qualquer exe independente de terceiros. Estou no Windows XP

Por favor, ajude, é muito importante para mim

Respostas:


2

Primeiro, adicione os bytes ef bb bf(UTF-8 codificado em U + FEFF) ao início do arquivo. É a marca de ordem dos 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

Desde que você tem xxd, eu assumo que você também tem Vim. Você pode fazer isso no Vim abrindo o arquivo e usando:

:set bomb ff=dos
:w

Desculpe senhor por não esclarecer, mas eu tenho que fazer tudo isso via linha de comando (ou seja, comandos em lote). Eu posso usar qualquer exe de terceiros como sed, tr, xxd, no entanto. Graças (PS Eu não não um (muito) user técnica)
SuperUserMan

@SuperUserMan: veja edições.
grawity

dang, eu esqueci de dizer, eu estou no windows xp não linux :(
SuperUserMan

@SuperUserMan: O primeiro comando permanece quase o mesmo, basta alterar ;para &se você usar o cmd.exe em vez de sh / bash. As outras ferramentas ( todosou sed) podem ser instaladas da mesma maneira que você já instalou os comandos fileou xxd.
grawity

@rawity curioso, percebo que xxd -r -p dá um resultado diferente para xxd -rp. pastebin.com/raw.php?i=iG5C0Jsw -r -p parece não ser engraçado, mas você utilizado -rp
barlop
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.