[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Grep und regex



Am Freitag, 7. November 2003 20:29 schrieb Thorsten Haude:
> Moin,
>
> * Andreas Schmidt <andy@space.wh1.tu-dresden.de> [2003-11-07 10:06]:
> >bin gerade ueber ein Problem mit meinen regular expressions bei grep
> >gestolpert. Wollte in der Ausgabe von ps nach einer bestimmten pid
> >suchen:
> >
> >	PROC=`cat pid`
> >	ps ax | grep "^$PROC"
> >
> >Das ganze funktionierte auch eine Weile -- bis auf einmal $PROC nur
> >vierstellig war. Da es auch fuenfstellige pids gab und die Ausgabe
> >rechtsbuendig ist (vor pid also white space war), wurde nichts mehr
> >gefunden.
>
> Ich kann Dir nicht folgen. In Zeile 1 schreibst Du eine PID in die
> Variable, richtig? Dann wirst Du in Zeile zwei diese PID auch finden.
> Wo siehst Du, daß die Zahl der Ziffern ins Spiel kommt.
>
> Ich würde es allerdings so machen:
>     ps -ef | grep `cat pid`

jan@pennywise:~$ cat pid
398
jan@pennywise:~$ ps -ef | grep `cat pid`
root       398     1  0 17:22 ?        00:00:00 /usr/sbin/apache
www-data   407   398  0 17:22 ?        00:00:00 /usr/sbin/apache
www-data   408   398  0 17:22 ?        00:00:00 /usr/sbin/apache
www-data   409   398  0 17:22 ?        00:00:00 /usr/sbin/apache
www-data   410   398  0 17:22 ?        00:00:00 /usr/sbin/apache
www-data   411   398  0 17:22 ?        00:00:00 /usr/sbin/apache
www-data   825   398  0 20:00 ?        00:00:00 /usr/sbin/apache
www-data   840   398  0 20:41 ?        00:00:00 /usr/sbin/apache
www-data   841   398  0 20:41 ?        00:00:00 /usr/sbin/apache
www-data   842   398  0 20:41 ?        00:00:00 /usr/sbin/apache

Das Problem ist weniger das Finden als das Finden der gesuchten PID. Da 
kommt auch die Stellenzahl der PID ins Spiel: Wenn Du z. B. nach der 
PID 3 mit Deiner Methode suchst, kriegst Du wohl noch ein paar mehr 
unzutreffende Treffer.

BTW - ist mir grad eingefallen. Mit
ps --no-headers -p `cat pid`
kriegt man ganz ohne grep den gewünschten Prozess.

Jan



Reply to: