2011-10-12 13 views
11

pgrep usa expresiones regulares como estilo de patrón. Extraño la opción -i de grep, decirle a pgrep, que estoy buscando mayúsculas y minúsculas.¿Cómo puedo buscar mayúsculas y minúsculas en pgrep?

Una alternativa es

ps ax | grep -i PATTERN 

Pero luego tengo que utilizar el PID para enviar una señal KILL. Con el combo pgrep y pkill puedo usar el mismo patrón para matar la aplicación.

¿Cómo puedo usar REG_ICASE de regex sobre la marcha en el bash?

+1

Por qué no usar awk? '$ ps ax | grep -i PATRÓN | awk '{print $ 1}' ' –

+1

El código está allí, simplemente comentado. No estoy seguro de por qué pensó :-) http://procps.cvs.sourceforge.net/viewvc/procps/procps/pgrep.c?view=markup#l627 – plundra

+0

Interesante. El código está comentado debido a la opción -I. FreeBSD parece preguntar antes de matar. Hmm, no puedo ver cómo usar pgrep de manera aceptable sin la opción -i. Entonces, creo, tengo que usar el escenario awk. – timomeinen

Respuesta

6
kill `ps ax | grep -i PATTERN | awk '{ print $1 }'` 

matará a todos de su caso coincidente del proceso insensible proceso mediante el mágico `

+1

Si puedo sugerirlo, grep no es necesario aquí, awk puede hacer el trabajo de coincidencia de patrones de caso 'ps ax | awk 'BEGIN {IGNORECASE = 1}/PATTERN/{print $ 1}' ' –

8

Si la cadena no es demasiado largo:

pkill -f '[Pp][Aa][Tt][Ee][Rr][Nn]' 
Cuestiones relacionadas