詳細は次のとおりです。
.csv
一部のセンサーでは、1秒ごとにキャプチャした値が含まれており、最後の列はエポック(実際の外観1453998477.044
)です。
(* sはセンサー値です)。
例:
* , * , * , 2.356
* , * , * , 3.356
* , * , * , 4.356
* , * , * , 5.356
* , * , * , 6.356
* , * , * , 7.356
* , * , * , 8.356
b.csv
プログラムの特定の部分が開始/終了する瞬間を示す固定数のエポック(1行に1つずつ)があるため、エポックは昇順にソートされます。
次の例では、プログラムは2つの部分で構成されています。2.421
最初の部分は始まり、終わる部分5.500
、もう一方は終わる部分です8.012
。
2.421
5.500
8.012
質問
アイデアは、a.csv
次の属性を持つ列を追加することです。
- デフォルトではゼロで埋められています。
- 各行には、
b.csv
エポックがいくつかの開始/終了エポックに最も近い場合は1が必要です。
上記の例によると、予想される出力は次のようになります。
* , * , * , 2.356 , 1
* , * , * , 3.356 , 0
* , * , * , 4.356 , 0
* , * , * , 5.356 , 1
* , * , * , 6.356 , 0
* , * , * , 7.356 , 0
* , * , * , 8.356 , 1
PS:質問自体は一般的な内容ですが、全体的に説明が難しく、特定のケースを使用しました。
ありがとう
答え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