Hallo,
hier ist mein Vorschlag:
#!/bin/bash grep "component:" test280214.txt >ausgabedatei280214.txt grep "current version:" test280214.txt | paste ausgabedatei280214.txt -
ausgabedatei280214.txt
sed -i '1,2d' ausgabedatei280214.txt sed -i 's/ (repository version:)/\t\1/' ausgabedatei280214.txt grep "Package name:" test280214.txt | paste ausgabedatei280214.txt -
ausgabedatei280214.txt
sed -i '1,2d' ausgabedatei280214.txt
Vielleicht geht es noch einfacher. Ich bin kein Scripting Experte.
Viele Grüße Frank
Am Donnerstag, den 27.02.2014, 21:01 +0100 schrieb Thomas Müller:
Hallo an die Scripting Experten unter Euch,
wie kann ich elegant bzw. überhaupt folgende Aufgabe lösen: Gegeben ist eine Datei mit folgendem Inhalt (Auszug) < component: NetXtreme BCM5719 Gigabit Ethernet PCIe rev 01 (eth7) component type: Firmware current version: 7.8.16 = repository version: 7.8.16 Package name: Network_Firmware_T3TVN_LN_7.8.16.BIN Applicability: Package cannot be applied
component: iDRAC7 component type: Firmware current version: 1.51.51 > repository version: 1.46.45 Package name: ESM_Firmware_JYX4C_LN32_1.46.45_A00.BIN Applicability: Package can be applied
In der Ausgabe sollen die Werte für component, current version, repository version und Package name pro Komponente in jeweils einer Zeile erscheinen. Diese sollen im Idealfall Felder darstellen, die mit awk erfasst werden können ($1, $n). Hintergrund: Es soll ein Soll-Ist Vergleich der installierten Firmware eines DELL Servers mit einem Firmware Repository durchgeführt werden mit der Angabe: Komponente A braucht ein Update auf Version x, Komponente B ist aktuell.
Habe schon diverse awk und sed Konstrukte probiert, leider ohne durchschlagenden Erfolg da sich meine Kenntnisse der genannten Tools arg in Grenzen hält ;-(
Wie könnte man das machen?
Gruß Thomas
Lug-dd maillist - Lug-dd@mailman.schlittermann.de https://ssl.schlittermann.de/mailman/listinfo/lug-dd