다른 두 열(다른 파일의 열 중 하나)의 기능으로 CSV 파일에 열 추가

다른 두 열(다른 파일의 열 중 하나)의 기능으로 CSV 파일에 열 추가

세부 사항은 다음과 같습니다.

.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다음 속성을 가진 열을 추가하는 것입니다.

  1. 기본적으로 0으로 채워져 있습니다.
  2. 각 행에는 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

관련 정보