Bazı grep
s kullanarak filtrelemek büyük bir veri kaynağım var .
İşte temelde şu anda ne yapıyorum:
#!/bin/bash
param1='something'
param2='another'
param3='yep'
echo $(avro-read /log/huge_data | grep $param1 | grep "$param2-" | grep $param3 | wc -l) / $(avro-read /log/ap/huge_data | grep $param1 | grep -v "$param2-" | grep $param3 | wc -l) | bc -l
Çoğunlukla aynı filtrelemeyi (ikinci seferde tek bir fark) yaptığımı, her birinin sayımını ve nihai sonucu böldüğüme dikkat edin. Bu kesinlikle yapmak çok zor bir şey ama biraz denemek ve hızlandırmak ve geçici bir dosya kullanmadan sadece ilk filtrelemeyi yapmak istiyorum.
Bir beşlik kullanmayı denedim, ancak bir komut dosyasında iki işlemin ondan okuma yapmasının mümkün olup olmadığından emin değilim ve her ikisi de nihai sonucu hesaplamak için yapılana kadar üçüncü bir "bekle" işlemine sahip oldum. Ayrıca kullanmaya başladım tee
, ancak yine de ortaya çıkan alt işlemlerin nasıl senkronize edileceğinden emin değilim.
EDIT: https://superuser.com/a/561248/43649 adresini kullanarak bunu kendim çözdüm , ancak cevap olarak başka bir öneri olarak işaretledim.