Hallo,
ich moechte aus der Zeile: Feb 10 00:12:57.51: [ 6032]: SESSION ...
die PID zwischen den eckigen Klammern rausfiltern. awk '{ print $5 }' hilft mir hier nicht weiter, da die PID ja auch mal das Leerzeichen ausfüllen kann und die Klammern auch stören.
Kann mir jemand auf die Sprünge helfen?
Danke, Rico
Hi Rico,
On Wed, Mar 13, 2002 at 18:27:58 +0100, Rico Koerner wrote:
ich moechte aus der Zeile: Feb 10 00:12:57.51: [ 6032]: SESSION ...
die PID zwischen den eckigen Klammern rausfiltern.
Geht auch bash-only:
line='Feb 10 00:12:57.51: [ 6032]: SESSION ...' pid=$(IFS='[]' ; set -- $line ; echo $2) echo $pid
bye, Chris
Christian Perle wrote:
Hi Rico,
Geht auch bash-only:
Natürlich geht das. :-) Ich hatte schon befürchtet, hier kommt eine Perl-Lösung. ;-)
line='Feb 10 00:12:57.51: [ 6032]: SESSION ...' pid=$(IFS='[]' ; set -- $line ; echo $2)
Verstanden hab ich das zwar noch nicht. :-(
echo $pid
Aber das Ergebnis stimmt. :-))
Danke nochmal.
Rico
On Wednesday, 13. March 2002 19:48, you wrote:
Natürlich geht das. :-) Ich hatte schon befürchtet, hier kommt eine Perl-Lösung. ;-)
Naja, ich haette 'ne Python-Loesung im Angebot ;-)
<copy here> #! /usr/bin/env python
import sys, string
def main(): startpid = sys.argv pid1 = startpid[4:] pid2 = string.join(pid1) pid2 = string.replace(pid2,"[","") pid2 = string.replace(pid2,"]","") pid2 = string.replace(pid2,":","") pid3 = string.split(pid2) pid3 = pid3[:1] readypid = string.join(pid3) print readypid main() </copy here>
Der Code ist vielleicht nicht ganz normgerecht funktioniert aber wunderbar, zumindest mit deinem String. Was nach der Pid kommt ist dem Skript egal, was davor kommt schon weniger :-)
Rico
Sebastian, fuer Verbesserungsvorschlaege immer offen seiend
lug-dd@mailman.schlittermann.de