#include main (argc, argv) int argc; char *argv[]; { if (argc == 1) { fprintf(stderr, "Usage: reorder {m|f|t|d}*\n"); return; } for(;;) { char machine[100], time[25], file[100]; int i, fi; char ch = (char)fgetc(stdin); if (feof(stdin)) break; i = 0; while (!feof(stdin) && ch != ' ') { if (i < 99) machine[i++] = ch; ch = (char)fgetc(stdin); } machine[i] = '\0'; while (!feof(stdin) && ch == ' ') ch = (char)fgetc(stdin); while (!feof(stdin) && ch != ' ') ch = (char)fgetc(stdin); while (!feof(stdin) && ch == ' ') ch = (char)fgetc(stdin); while (!feof(stdin) && ch != ' ') ch = (char)fgetc(stdin); while (!feof(stdin) && ch == ' ') ch = (char)fgetc(stdin); for (i = 0; i < 20; i++) time[i] = (char)fgetc(stdin); time[20] = '\0'; for (i = 0; i < 13; i++) (char)fgetc(stdin); while (!feof(stdin) && ch != 'f') ch = (char)fgetc(stdin); fi = 0; while (!feof(stdin) && ch != ' ') { if (fi < 99) file[fi++] = ch; ch = (char)fgetc(stdin); } file[fi] = '\0'; while (!feof(stdin) && ch != '\n') ch = (char)fgetc(stdin); { int i; for (i = 1; i < argc; i++) switch( argv[i][0]) { case 'm' : printf(i == 1 ? "%s" : " %s", machine); break; case 'f' : if (file[fi - 1] == '/') file[fi - 1] = '\0'; else if (!strcmp(file + fi - 11,"/index.html")) file[fi - 11] = '\0'; else if (file[fi - 2] == '/' && file[fi - 1] == '.') file[fi - 2] = '\0'; printf(i == 1 ? "%s" : " %s", file); break; case 't' : printf(i == 1 ? "%s" : " %s", time); break; case 'd' : printf(i == 1 ? "%10.10s" : " %10.10s", time); break; } printf("\n"); } } }