Hallo Thomas,
ich habe noch einen zweiten Vorschlag.
Es geht auch nur mit sed und in einer Zeile. Wer sich richtig mit sed
auskennt, könnte den zweiten Vorschlag bestimmt noch vereinfachen:
sed -n '{/component:/p; /current version:/p; /Package name:/p}'
test280214.txt | sed -e '/component:/{ N ; N ; s/\n/\t/g}' -e 's/
\(repository version:\)/\t\1/' >ausgabe-280214.txt
viele Grüße
Frank
Am Freitag, den 28.02.2014, 10:49 +0100 schrieb Thomas Müller:
> Hallo Christian und Frank,
>
>
> danke für die Anregungen, ich probiers mal.
> "paste" hatte ich nicht auf dem Radar bzw. kannte es gar nicht :-)
>
>
> Am 28. Februar 2014 09:46 schrieb Frank Hasterok
> <frank.hasterok.lug-dd@clfh.de>:
> 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
>
>
>
> _______________________________________________
> Lug-dd maillist - Lug-dd@mailman.schlittermann.de
> https://ssl.schlittermann.de/mailman/listinfo/lug-dd
>
>
>
>
>
> --
> Freundliche Grüße
>
>
> Thomas Müller
> Systemingenieur (IT)
>
> Hainstrasse 6
>
> 01662 Meißen
> eMail: thomas@mueller-meissen.de
> _______________________________________________
> Lug-dd maillist - Lug-dd@mailman.schlittermann.de
> https://ssl.schlittermann.de/mailman/listinfo/lug-dd
_______________________________________________
Lug-dd maillist - Lug-dd@mailman.schlittermann.de
https://ssl.schlittermann.de/mailman/listinfo/lug-dd