Potrzebuję policzyć liczbę wpisów w spakowanym pliku (.gz) z wiadra S3 zawierającego pewne znaki. Jak mogłem to zrobić?s3cmd count linie z zcat i grep
W szczególności moje wiadro S3 to s3://mys3.com/
. Zgodnie z tym, istnieją tysiące wiader jak następuje:
s3://mys3.com/bucket1/
s3://mys3.com/bucket2/
s3://mys3.com/bucket3/
...
s3://mys3.com/bucket2000/
W każdym z wiadra, istnieje około setki skompresowanego (.gz) obiektów JSON tak:
s3://mys3.com/bucket1/file1.gz
s3://mys3.com/bucket1/file2.gz
s3://mys3.com/bucket1/file3.gz
...
s3://mys3.com/bucket1/file100.gz
Każdy z spakowany plik zawiera około 20 000 obiektów JSON (każdy obiekt JSON jest linią). W każdym obiekcie JSON istnieją pewne pola zawierające słowo "request". Chcę policzyć, ile obiektów JSON jest tam w wiadrze1 zawierającym słowo "request". Próbowałem tego, ale to nie działa:
zcat s3cmd --recursive ls s3://mys3.com/bucket1/ | grep "request" | wc -l
nie mam wiele doświadczeń powłoki, więc może ktoś mi pomóc z tym? Dzięki!
właśnie to, czego szukasz, dzięki! –