세부 사항은 다음과 같습니다.
.csv
일부 센서에서 1초마다 캡처한 값이 포함되어 있으며, 마지막 열은 에포크(실제 모습 1453998477.044
)입니다.
(*s는 센서 값입니다).
예:
* , * , * , 2.356
* , * , * , 3.356
* , * , * , 4.356
* , * , * , 5.356
* , * , * , 6.356
* , * , * , 7.356
* , * , * , 8.356
b.csv
프로그램의 특정 부분이 시작/종료되는 순간을 나타내는 고정된 수의 에포크(한 줄에 하나씩)가 있으므로 에포크는 오름차순으로 정렬됩니다.
다음 예에서 프로그램은 두 부분으로 구성됩니다. 2.421
첫 번째 부분은 시작하고 끝나는 부분 5.500
이고 다른 부분은 끝나는 부분입니다 8.012
.
2.421
5.500
8.012
질문
아이디어는 a.csv
다음 속성을 가진 열을 추가하는 것입니다.
- 기본적으로 0으로 채워져 있습니다.
- 각 행에는
b.csv
에포크가 일부 시작/종료 에포크에 가장 가까운 경우 1이 있어야 합니다.
위의 예에 따르면 예상되는 출력은 다음과 같습니다.
* , * , * , 2.356 , 1
* , * , * , 3.356 , 0
* , * , * , 4.356 , 0
* , * , * , 5.356 , 1
* , * , * , 6.356 , 0
* , * , * , 7.356 , 0
* , * , * , 8.356 , 1
추신: 질문 자체는 일반적인 내용인데, 전체적으로 설명하기가 어려워서 특정 사례를 사용했습니다.
감사합니다
답변1
주문하다:
awk 'NR==FNR {values[NR]=$1; next;}
{ if (values[1]>values[2]) newvalue=0; else newvalue=1;
print $0 "," newvalue; }' b.csv a.csv
산출:
*,*,*,1,1
*,*,*,2,1
*,*,*,3,1