Daran finde ich unschön, dass er länger arbeitet als nötig. Allerdings ist auch meine Lösung unschön, weil sie die Dateien immer wieder liest.
Na ja ... klar liest er die Datei (aus dem Cache, vermute ich mal ...) jedes Mal wieder.
Aber das sind jetzt höchstens ein paar 100 Läufe (bishead
die Pipe abbricht), und das vermutlich auch nur alle Jubeljahr. Da fand ich das erstmal einfach egal.
Klar, pragmatisch ist es egal. Deshalb schrieb ich ja auch "unschön" und nicht "schlecht". Es ist in diesem Fall ein ästhetisches Argument. Man sollte aber immerhin im Hinterkopf behalten, dass das abhängig vom Einzelfall und insbesondere dem Datenvolumen ist und in anderen Fällen bedeutsam werden kann.
Für die schnelle Variante würde ich - wie gewohnt - zuerst eine assioziatives Array mit den vorhandenen Nummern anlegen,
Man kann sogar ein normales Array nehmen - sind ja nur ~1000 Werte.
und das dann an die Schleife verfüttern, ± so wie Du das mit
awk
gemacht hast. Aber hier kann man auch die Shell nehmen - ist praktisch egal, denke ich.
Auch wenn die bash
das kann, finde ich da andere Werkzeuge deutlich geeigneter.
Jetzt wollte ich es doch mal wissen, und habe mit simulierten Daten getestet: [...]
☺
Klar ist so eine Array-Variante 10x so schnell, aber trotzdem: so richtig bewegt das hier nicht die Welten.
Immerhin: Faktor 10 ist schon bemerkenswert.