ausgabe manipulieren

N

Neon03

Grünschnabel
Hallo,

also meine ausgabe sieht folgendermassen aus

PHP:
Full jobname:     ozn4o12zn12cp.sub
Hard Resources:   h_rss=5000M
                         h_fsize=50000M
                         h_cpu=2:00:00
                         hardware=x86_64
Full jobname:     hairbundle_V3.0_queue.sub
Hard Resources:   hardware=x86_64
                         h_rss=500M
                         h_fsize=500M
                         h_cpu=48:00:00

ich moechte jetz eine ausgabe vom ersten Full jobname und die ausgabe soll vor dem 2. Full Jobname enden. Jedoch weis ich nicht wie ich das mit sed und co mache.

vielen dank

bitte helft mir
 
Schnellschuss mit perl:

Code:
... | perl -0777 -pe 's!(Full jobname:.*)Full jobname:.*!$1!s'

Gruss, Xanti
 
Hallo zusammen

Mit 'sed' ist das das Einzige das mir in den Sinn kommt ist das:
Code:
sed '/^Full.*/,/^Full.*/!d' inputfile | sed '$d' > outputfile

Aber ich bin überzeugt, dass das irgendwie eleganter geht...Wäre interessant... ;)

Gruss
d22
 
ok vielen dank, die loesung habe ich einfach mit paar zwischenschritten gemacht.

ich habe mir die 1. zeile gemerkt wo die jobid steht, einfach 8 zeilen draufgerechnet. nun habe ich mir diesen ausschnitt ausgeschnitten und nach Full (wegen Full jobname gegrept), dann hab ich mir die zeile vom 2. Full (Full jobname) gemerkt. am ende musste ich nun von dieser zeile 1 subtrahieren und schon habe ich den ausschnitt des Status. Also von Anfangzeile bis Endzeile

#infos zum job
#die anfangszeile des eintrages
declare -i anfangszeile=`cat -n qstatrtext | grep $jobid | awk '{print $1}'`

#der statuseintrag wird auf weiter 8 zeilen geschaetzt
declare -i tmpendzeile=$anfangszeile+8

#die endzeile wird ermittelt, es ist die zeile wo erneut "Full jobname" vorkommt
declare -i endzeile=`cat -n $qstatrtext | sed -n -e ''$anfangszeile','$tmpendzeile'p' | grep Full | sed -n -e '2,1p' | awk '{print $1}'`

#die richtige endzeile ist jedoch 2 zeilen davor
endzeile=$endzeile-2

#einfuegen des statusberichtes in die mail
`cat $qstatrtext | sed -n -e ''$anfangszeile','$endzeile'p' >> $mailname`
 

Ähnliche Themen

SSD auf einen (geringfügig) kleineren USB-Stick wiederherstellen

Freie Software auf dem Smartphone

Prblem mit zeilenweises auslesen von Datei und schreiben nach mysql

Zeilen kopieren mit SED

Ausgabe an einen String

Zurück
Oben