2013-07-02 27 views
5

Bazı karakterleri içeren bir S3 kümesinden sıkıştırılmış (.gz) dosyadaki giriş sayısını saymalıyım. Bunu nasıl yapabilirim?s3cmd zcat ve grep ile satırları sayma

Özellikle S3 ürün grubum s3://mys3.com/ dur. O altında, kova binlerce aşağıdaki gibi bulunur:

s3://mys3.com/bucket1/file1.gz 
s3://mys3.com/bucket1/file2.gz 
s3://mys3.com/bucket1/file3.gz 
      ... 
s3://mys3.com/bucket1/file100.gz 

Each of

kova her birinde
s3://mys3.com/bucket1/ 
s3://mys3.com/bucket2/ 
s3://mys3.com/bucket3/ 
      ... 
s3://mys3.com/bucket2000/ 

aşağıdaki gibi sıkıştırılmış (.gz) yüzlerce JSON nesneler hakkında vardır sıkıştırılmış dosyada yaklaşık 20.000 JSON nesnesi bulunur (Her JSON nesnesi bir satırdır). JSON nesnesinin her birinde "istek" kelimesini içeren belirli alanlar vardır. "İstek" kelimesini içeren kova1 içinde kaç tane JSON nesnesi olduğunu saymak istiyorum. Bu çalıştı ama işe yaramadı:

zcat s3cmd --recursive ls s3://mys3.com/bucket1/ | grep "request" | wc -l 

Ben kabuk deneyimleri çok yok, bu yüzden herkes bu konuda bana yardımcı olabilir? Teşekkürler! durumda herkes yılında

cevap

8

ilgilenmektedir:

s3cmd ls --recursive s3://mys3.com/bucket1/ | awk '{print $4}' | grep '.gz' | xargs [email protected] s3cmd get @ - | zgrep 'request' | wc -l 
+0

ben teşekkür, arıyordu sadece ne! –