2013-08-26 5 views
0

Я пытаюсь загрузить файл CSV с локального веб-сервера (веб-сервер работает на устройстве формирования сигнала) с:Mac Terminal Curl для текстового файла

curl -O http://10.0.0.139/crv01.csv 

Выход из завитка только странные символы. Если я поместил тот же url в Safari, файл CSV будет правильно изображен. Есть ли проблема с кодированием?

Я попробовал многословный вариант, который дает:

Gunthers-MacBook-Pro:Documents guenther$ curl -v -O http://10.0.0.141/crv01.csv 
* About to connect() to 10.0.0.141 port 80 (#0) 
* Trying 10.0.0.141... 
    % Total % Received % Xferd Average Speed Time Time  Time Current 
           Dload Upload Total Spent Left Speed 
    0  0 0  0 0  0  0  0 --:--:-- --:--:-- --:--:--  0* connected 
* Connected to 10.0.0.141 (10.0.0.141) port 80 (#0) 
> GET /crv01.csv HTTP/1.1 
> User-Agent: curl/7.24.0 (x86_64-apple-darwin12.0) libcurl/7.24.0 OpenSSL/0.9.8x zlib/1.2.5 
> Host: 10.0.0.141 
> Accept: */* 
> 
< HTTP/1.1 200 OK 
< Date: Mon Aug 26 21:03:12 2013 
< Server: VEGA-HTTP-SERVER 
< Cache-Control: public, max-age=3600 
< Content-type: text/plain 
< Connection: Close 
< Content-Encoding: gzip 
< Content-Length: 226 
< 
{ [data not shown] 
100 226 100 226 0  0 1883  0 --:--:-- --:--:-- --:--:-- 1965 
* Closing connection #0 
Gunthers-MacBook-Pro:Documents guenther$ vi crv01.csv 

^_<8b>^H^@^@^@^@^@^@^C}<92>Á 
<83>0^L<86>ï<82>ï xÙ^N+I;kkO²<95>!l^N6õ-ÆÞÿ¶zФ¬4Ç~$ÿ<9f>?­_~^YÞÃs¬[email protected]Ô<97>ùµø 
ÐMýí4~E<85>áñÚOÞMÃû¥¿Ïþð9<96><85>l^D^X!^A<95>CÛ)Õ¡uR´^RBETB<96>b<96>J¢^X^F^G<87>LWª^?ªwWÀt·^F<99>n<82>&tY/Ó]M­®^X=g]5D^S½:KÛ,5;Õv^]^]®À\Ù^\EÈRÌRÊ*¡<8b><94>U<8a>RV)JY¥(e¥^M<84><8a>öEÊ*E^Mmd TÜk<89>¶^AÆ÷eÿy<9b>ü^C»üß{E^C^@^@ 

Исходный код веб-страницы (Google Chrome) представляет собой обычный файл CDV. CSV-файл создается http://www.vega.com/en/Signal-conditioning-instrument-VEGAMET391.htm

Опция -text-ascii также не помогла!

+0

Что вы используете для своего локального сервера? Apache? Узел? nginx? –

ответ

3

Кажется, страница будет отправлена (см. заголовок «Content-Encoding: gzip»), хотя завиток не запрашивал его. Если вы попросите его, завиток автоматически распакует его для вас при его получении. Попытка:

curl --compressed -O http://10.0.0.139/crv01.csv 
+0

Итак, есть ли причина, по которой cURL не делает это автоматически? :-) –

+0

Спасибо, сейчас работает – user13337

+0

@NicholasRiley: Основная философия curl - делать простые вещи по умолчанию и позволять пользователям включать больше причудливых при желании, это соответствует этому. –

0

Эта команда должна работать, она корректно работает в моей системе (10.6) при локальном обслуживании CSV-файла.

Вы можете попробовать команду с многословным, чтобы увидеть, если есть какие-либо проблемы:

curl -v -O http://10.0.0.139/crv01.csv 
0

Как был создан CSV? По Excel или это всегда был родной текст? Я подозреваю, что Safari выполняет рендеринг, игнорируя посторонние двоичные данные.

Вы можете просмотреть источник в Safari и убедиться, что он простой.

Также попробуйте curl --trace-ascii, чтобы запросить контекст ASCII.

Редактировать: Из вашего подробного вывода выглядит, как файл gzipped. Попробуйте сохранить его как .gz файл, а затем gunzip crv01.gz

curl http://10.0.0.139/crv01.csv -o crv01.gz 
gunzip crv01.gz 

Если есть более crv файлы, вы также можете загрузить ряд из них сразу:

curl "http://10.0.0.139/crv[01-50].csv" -o crv#1.gz 
Смежные вопросы