PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : wieder ein Awk problem



mnmr
09-02-2007, 09:05
ich habe in einem Texfile eine Softwartabelle die ausglesen werden soll bzw. in ein anderes File geschrieben werden. Da sich diese nicht immer an der Gleichen stelle im File befindet, wollte ich fragen ob jemand eine moeglichkeit kenn soetwas zu bewerkstellingen. meinetwegen koennen auch am anfang und am ende irgendwelche indikatoren stehen.

merci im voraus

Romanday
09-02-2007, 21:03
Mußt Du mal dein Beispiel File posten.
Wir wissen doch nicht wonach wir suchen sollen.

mnmr
12-02-2007, 12:19
zum Beispiel:
eine Datei:

Text
Text
Text
Text

Softwaretabelle
--------------------------------------------------------------------------------------
iptraf
cpu burn in 10.4
Passmark Test
unixbench 3.0
---------------------------------------------------------------------------------------


und diese Tabelle wird aber laufend veraendert.

gibt es da ueberhaupt eine Moeglichkeit?

Romanday
12-02-2007, 19:45
gibt es da ueberhaupt eine Moeglichkeit?

Wenn es dich nicht stört habe ich das Problem mit PHP gelöst.
z ist dabei die zu lesende Datei.

php -r '$d=file("z");preg_match_all("/[-]+([^-]+)[-]+/s",implode($d,""),$a);print implode(($a[1]),"");'

Für deinen Fall ist mit Sicherheit eine SED Variante die beste und schnellste Lösung.
(Habe aber momentan kein Bock auf SED.:D)

mnmr
13-02-2007, 07:41
funktioniert wunderbar....tausend dank

mnmr
13-02-2007, 08:24
tja schon verschrien :(
grml unterstuetzt php nicht....gibts vielleicht noch ne andere moeglichkeit??

Romanday
13-02-2007, 09:55
tja schon verschrien :(
grml unterstuetzt php nicht....gibts vielleicht noch ne andere moeglichkeit??

Gibt immer viele Möglichkeiten.:D

Du mußt ja irgendein Kriterium finden nach dem Du schneiden kannst.
Im vorherigen Beispiel war es ----.
Ein andere Möglichkeit wäre es mit awk über die Anzahl der Tabellenspalten zu schneiden.
Das klappt aber nur wenn die Anzahl der Spalten immer die selbe ist.

Poste mal deine Tabelle vollständig.
Wenn der Text zu groß ist, kannst du auch ein txt File an deine Nachricht anhängen.

mnmr
14-02-2007, 07:22
tja wie gesagt, das problem ist ja dass es nur wenige kriterien gibt.
wie oben beschrieben ist es ein Textfile das sich sowohl in laenge des Files, inhalt und form stetig veraendert. auch die Tabelle kann sich veraendern. Sie steht nur, so wie im obigen Beispiel gepostet, nur zwischen ----------- diesen zwei linien oben und unten.

Romanday
14-02-2007, 09:01
tja wie gesagt, das problem ist ja dass es nur wenige kriterien gibt.
wie oben beschrieben ist es ein Textfile das sich sowohl in laenge des Files, inhalt und form stetig veraendert. auch die Tabelle kann sich veraendern. Sie steht nur, so wie im obigen Beispiel gepostet, nur zwischen ----------- diesen zwei linien oben und unten.

Wie gesagt mit Sed geht es.
Das Beispiel ist nicht perfekt, reicht aber vielleicht für deine Zwecke.

sed -n '/--/,/--/p' datei.txt

(Bei Sed vergeht mir immer Lust am coden.
Sed ist so ein fürchterlicher Zeitdieb.)

mnmr
14-02-2007, 13:25
weiss doch gar nicht was du gegen sed hast....funktioniert doch einwandfrei :D

Romanday
15-02-2007, 17:02
weiss doch gar nicht was du gegen sed hast....funktioniert doch einwandfrei :D

Das Beispiel ist nicht perfekt.
Normalerweise löst man so etwas über eine Rückreferenzierung,
habe jetzt aber keine Zeit das mit SED aus zu popeln.

403
16-02-2007, 23:32
nana, nicht nachlassen :D