// Meatproxy website_status tally. g++ -O2 -std=c++17 -o /tmp/mp_tally /tmp/mp_tally.cpp #include #include #include #include int main(int argc, char **argv) { const char *path = argc > 1 ? argv[1] : "/tmp/mp_status.tsv"; FILE *f = fopen(path, "r"); if (!f) { perror(path); return 1; } char seq[64], ws[128], rs[128], rr[256]; std::map ws_c, rs_c; int n = 0; while (fscanf(f, "%63s\t%127s\t%127s\t%255s\n", seq, ws, rs, rr) == 4) { ws_c[ws]++; rs_c[rs]++; n++; } fclose(f); printf("n=%d\nwebsite_status:\n", n); for (auto &kv : ws_c) printf(" %s %d\n", kv.first.c_str(), kv.second); printf("revision_status:\n"); for (auto &kv : rs_c) printf(" %s %d\n", kv.first.c_str(), kv.second); return 0; }