shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] Operações em tabela


From: MrBiTS
Subject: Re: [shell-script] Operações em tabela
Date: Wed, 09 Jul 2008 09:07:24 -0300
User-agent: Thunderbird 2.0.0.14 (X11/20080505)

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

| Olá pessoal, tor fazendo migração de um arq .txt pra outro.
| O primeiro é temperatura em Kelvin mais ou menos assim:
|
| 295,51 297,95 292,33 294,77
| 296,45 300,18 293,76 298,13
|
| Preciso passar ele pra Celsius, ou seja, subtrair o valor de cada
| coluna do arquivo anterior por 273,15 o que ficaria assim:
|
| 22,36 24,80 19,18 21,62
| 23,30 27,03 20,61 24,98
|
| 295,51-273,15=22,36
| 296,45-273,15=23,30 e assim por diante, mas o arq eh imenso.
|
| Tentei fazer com xargs, expr e naum consegui..
|
| Quem poder dá uma dica ficarei muito grato...
| Se alguém tiver dúvidas sobre os arquivos, posso esclarecer..
| Abraço a todos...

Não entendi onde xargs entra nisso, mas tudo bem.
Seu problema está no separador decimal. Vírgula não é separador decimal padrão 
de nenhum sistema computacional que eu conheça. Ela
entra somente na internacionalização das coisas. Então, seu primeiro passo é 
mudar seu arquivo, trocando tudo o que for vírgula por
ponto. Pode fazer algo assim:

~    $ sed -i 's/\,/\./g' arquivo.txt

se sua versão do sed suportar o parâmetro -i ou

~    $ tr -s ',' '.' < arquivo.txt > arquivotrocado.txt

Depois, você fará uma leitura sequencial do arquivo, registro a registro, e 
poderá utilizará o bc para efetuar os cálculos, mais ou
menos assim:

~    $ echo "295.51-273.15" | bc

que resulta em 22.36.

Nas mensagens antigas da lista há soluções com awk e outras, até mais 
elegantes. Procure-as.

- --

Um abraço

.0. MrBiTs - address@hidden
..0 GnuPG  - 
http://keys.cardboard.net:11371/pks/lookup?op=get&search=0xAC37715A6DD1F186
000 http://www.mrbits.com.br

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)

iD8DBQFIdKn8rDdxWm3R8YYRAny2AKCEynlaFnzS4zx8DRZkA5lP8GeNhQCeIL5R
R61ETUQJJr88ldHlefvato0=
=APeM
-----END PGP SIGNATURE-----


reply via email to

[Prev in Thread] Current Thread [Next in Thread]