Linux 14.983 Themen, 106.385 Beiträge

Bash Hilfe bei Skripterstellung bzgl. CSV Verarbeitung

CGWS / 11 Antworten / Flachansicht Nickles

Hallo zusammen,

ich arbeite gerade an einem Bash Skript, dass eine CSV Datei verarbeitet die folgendermaßen aufgebaut ist:

servername,beliebigeZeichen-beliebigeZeichen-1.0.0.jar,34384327469324634servername,beliebigeZeichen-beliebigeZeichen-1.0.1.jar,70740238748932740
servername,beliebigeZeichen_beliebigeZeichen_1.0.2.jar,70740238748932740

Das Skript soll später folgende Ausgabe erzeugen:

  • beliebigeZeichen-beliebigeZeichen (1.0.0, 1.0.1, 1.0.2)

Ich habe aktuell eine temporäre Variable, die mir das mittlere Feld im aktuellen Schleifendurchlauf gespeichert hat. Hat jemand eine Idee wie man die gewünschte Ausgabe erzeugen könnte?

Gruß
CGWS

bei Antwort benachrichtigen
Borlander CGWS „Hallo Borlander, vielen Dank für deine Antwort. Ich hatte ...“
Optionen

Das wird schwierig, zumal es noch Beispiele gibt ganz ohne Versionsnummer. Was willst Du mit denen machen, bzw. wie willst Du die in der Ausgabe darstellen?

Grundsätzlich könntest Du versuchen per RegEx alles ab Ziffern.Ziffern bzw. mehrere Ziffern bis vor .jar zu erfassen. Selbst da wäre ich mir dann aber nicht so sicher ob damit alle Versionsnummer gematcht werden.

Möglicherweise könnte man das ganze mit Look-around_assertions aufsplitten, aber da müsstest Du sicher schon ein bisschen basteln.

Einfacher könnte es sein eine RegEx zu formulieren die immer die komplette Zeile matcht und sich die zwei Teil-Matchings (Bezeichner und Versionsstring) zu extrahieren. Wirklich einfach wird es da aber auch nicht einen Ausdruck zu formulieren der immer funktioniert ;-)

bei Antwort benachrichtigen