Diferença executando o mesmo script do Windows que o Linux

0

Eu escrevi um script que roda unoconv, converte de csv para xls.

Eu o executo conectando usando o cliente openssh ao servidor onde o script está e ele funciona bem. (Sempre o mesmo usuário Linux ...)

Mas quando outra pessoa que usa putty do Windows executa esse script, o unoconv falha, renderizando números como texto.

O script sempre é executado no servidor Linux.

A diferença é que alguns campos são prefixados com um "'" (aspas simples). Por exemplo, digamos que um campo tenha: 0,80 Ao executar o uso de putty no Windows, ele produz '0,80 Versão unoconv é

unoconv 0.7 Written by Dag Wieers <[email protected]> Homepage at http://dag.wieers.com/home-made/unoconv/

platform posix/linux2 python 2.6.6 (r266:84292, Jul 23 2015, 15:22:56)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-11)] LibreOffice 4.2.8.2

Qual poderia ser a razão para tal diferença?

    
por sebelk 12.03.2016 / 15:21

1 resposta

2

Eu encontrei o motivo:

Eariler meu script foi substituído pelo comando sed each "." com ","

Porque é o separador decimal que usamos.

Descobri que o unoconv gerencia inteligentemente esses problemas:

link

Eu encontrei uma solução alternativa:

echo  "Se esta conectando desde Windows o Linux (físico)?. Elija el SO por favor. Escriba 'Windows' o 'Linux'."

read OS


if [[ $OS = Linux ]];then
   sed -i 's/\./,/g' ${ARCHIVOINFO}.csv
fi

Eu preciso converter "." por "," se executar o script a partir do cliente Linux, caso contrário, ele falhará antes da cota única.

Talvez exista uma solução melhor, mas funciona bem para mim agora.

    
por 12.03.2016 / 16:21