Comando:
awk 'NR==FNR {values[NR]=$1; next;}
{ if (values[1]>values[2]) newvalue=0; else newvalue=1;
print $0 "," newvalue; }' b.csv a.csv
Saída:
*,*,*,1,1
*,*,*,2,1
*,*,*,3,1
Aqui está a situação:
Contém valores de alguns sensores capturados a cada 1 segundo, a última coluna é a época (eles realmente se parecem com 1453998477.044
).
(* s são os valores dos sensores).
Exemplo:
* , * , * , 2.356
* , * , * , 3.356
* , * , * , 4.356
* , * , * , 5.356
* , * , * , 6.356
* , * , * , 7.356
* , * , * , 8.356
Tenha um número fixo de épocas (uma por linha) indicando o momento em que uma determinada parte do programa foi iniciada / finalizada, de modo que as épocas são classificadas de forma ascendente.
No próximo exemplo, o programa tem duas partes, começou em 2.421
e terminou a primeira parte em 5.500
, depois a outra parte foi concluída em 8.012
.
2.421
5.500
8.012
A ideia é adicionar uma coluna a a.csv
com estas propriedades:
b.csv
, ela deve ter 1. Seguindo os exemplos acima, o resultado desejado é este:
* , * , * , 2.356 , 1
* , * , * , 3.356 , 0
* , * , * , 4.356 , 0
* , * , * , 5.356 , 1
* , * , * , 6.356 , 0
* , * , * , 7.356 , 0
* , * , * , 8.356 , 1
PS: O problema em si é uma questão geral, mas foi difícil para mim explicá-lo em termos gerais, por isso usei um caso específico
Obrigado rapazes
Comando:
awk 'NR==FNR {values[NR]=$1; next;}
{ if (values[1]>values[2]) newvalue=0; else newvalue=1;
print $0 "," newvalue; }' b.csv a.csv
Saída:
*,*,*,1,1
*,*,*,2,1
*,*,*,3,1
Tags awk join csv-simple