Neues aus meiner Shell-Küche: in einem Skript zum Disassemblieren eines einfachen seriellen Protokolls mit Hilfe von “sed” werden die Input-Daten immer größer und sed braucht immer länger – inzwischen bei letzten Messdaten über 20 Minuten! Das muss doch auch schneller gehen?!
Heute haben (fast) alle Rechner mehrere CPU-Cores und (Hyper)Threads. Warum also läuft das zu langsame sed nicht parallel auf allen verfügbaren CPUs und vervielfacht so den Durchsatz des Tools ?
Klingt einfach, ist aber zunächt gar nicht sooo trivial alleine mit Shell-Mitteln. Die Probleme werden gezeigt, und wie man mit ein bissl Aufwand das alles in den Griff bekommen kann.
Und dann gibt es noch ein tolles Kommandozeilen-Tool, welches genau diese Parallelisierung eines Programms wie sed in einer Pipe mit allen seinen Problemen perfekt löst, ganz ohne die grauen Haare der “nur-in-Shell-Lösung”.