Ich muss die Anzahl der Einträge in einer gezippten Datei (.gz) aus einem S3-Bucket mit bestimmten Zeichen zählen. Wie könnte ich es tun?s3cmd Zählzeilen mit zcat und grep
Insbesondere ist mein S3-Eimer s3://mys3.com/
. Darunter gibt es Tausende von Eimern wie folgt aus:
s3://mys3.com/bucket1/
s3://mys3.com/bucket2/
s3://mys3.com/bucket3/
...
s3://mys3.com/bucket2000/
In jedem der Eimer gibt es etwa hundert Reißverschluss (gz) JSON-Objekte wie folgt aus:
s3://mys3.com/bucket1/file1.gz
s3://mys3.com/bucket1/file2.gz
s3://mys3.com/bucket1/file3.gz
...
s3://mys3.com/bucket1/file100.gz
Jeder Die gezippte Datei enthält etwa 20.000 JSON-Objekte (jedes JSON-Objekt ist eine Zeile). In jedem JSON-Objekt gibt es bestimmte Felder, die das Wort "request" enthalten. Ich möchte zählen, wie viele JSON-Objekte in Bucket1 mit dem Wort "request" vorhanden sind. Ich habe das versucht, aber es hat nicht funktioniert:
zcat s3cmd --recursive ls s3://mys3.com/bucket1/ | grep "request" | wc -l
Ich habe nicht viele Shell-Erfahrungen, also könnte mir jemand dabei helfen? Vielen Dank!
genau das, was ich suchte, danke! –