grep output formatieren

mahed

Aktives Mitglied
Thread Starter
Dabei seit
26.03.2006
Beiträge
411
Reaktionspunkte
1
Guten Tag
Ich habe eine Datenreihe, bei der ich einen Wert auslesen will:
Code:
grep -i "total energy =" ./*log
./prod-b3lyp-3-N21-0-0-F.log:                       TOTAL ENERGY =    -152.8893323030
./prod-b3lyp-3-N21-0-0-F.log:                       TOTAL ENERGY =    -152.8900597586
./prod-b3lyp-6-N31-1-0-F.log:                       TOTAL ENERGY =    -153.7408140272
./prod-b3lyp-6-N31-1-0-F.log:                       TOTAL ENERGY =    -153.7416261345
./prod-b3lyp-6-N311-1-0-F.log:                       TOTAL ENERGY =    -153.7837113638
./prod-b3lyp-6-N311-1-0-F.log:                       TOTAL ENERGY =    -153.7849050557
./prod-b3lyp-6-N311-1-0-T.log:                       TOTAL ENERGY =    -153.7892045053
./prod-b3lyp-6-N311-1-0-T.log:                       TOTAL ENERGY =    -153.7902612727
./prod-b3lyp-6-N311-1-1-F.log:                       TOTAL ENERGY =    -153.7892108425
./prod-b3lyp-6-N311-1-1-F.log:                       TOTAL ENERGY =    -153.7903124591
./prod-b3lyp-6-N311-1-1-T.log:                       TOTAL ENERGY =    -153.7946240331
./prod-b3lyp-6-N311-1-1-T.log:                       TOTAL ENERGY =    -153.7955904367
./prod-b3lyp-6-N31-1-1-F.log:                       TOTAL ENERGY =    -153.7464656300
./prod-b3lyp-6-N31-1-1-F.log:                       TOTAL ENERGY =    -153.7472327757
./prod-mp2-3-N21-0-0-F.log:                       TOTAL ENERGY =    -152.0540491935
./prod-mp2-3-N21-0-0-F.log:                       TOTAL ENERGY =    -152.3606586664
./prod-mp2-3-N21-0-0-F.log:                       TOTAL ENERGY =    -152.3622481253

Wie sich erkennen lässt, enthält jedes File einen "TOTAL ENERGY =" Eintrag, zweimal. Ich will allerdings nur den letzten Eintrag sehen (und dann in eine OpenOffice Calc Tabelle importieren). Wenn ich allerdings
Code:
for i in *log
do
grep -i "TOTAL ENERGY =" $i |tail -n 1
bemühe, werden keine Dateinamen ausgegeben, was die Auswertung recht schwierig macht. Wenn ich zusätzlich
Code:
echo $i; grep -i "TOTAL ENERGY =" $i |tail -n 1
einfüge, so ist der Dateiname und der Wert auf zwei verschiedenen Zeilen.
Wie kann ich den jeweils zweiten Wert und den Filenamen auf einer Bildschirmzeile ausgeben?

Danke für eure Hinweise.
 
So zum Beispielt
Code:
for i  in foo
do
ausgabe=`grep ....`
j++
if [ $j % 2 == 0 ]
then
echo $ausgabe
fi
done
 
Zurück
Oben Unten