¿Marcar el comando 'ps' que puede filtrar los argumentos?

¿Marcar el comando 'ps' que puede filtrar los argumentos?

Conozco el argumento "-C" que puede filtrar según el comando.

Pero en mi escenario puedo tener algunos procesos con el mismo nombre de proceso y argumentos diferentes.

¿Cómo filtrar por estos argumentos?

(Sé que podría canalizar a grep más tarde, pero eso no es 100% exacto. Es decir, cuando un argumento puede contener otro argumento, como si quisiera filtrar por la "barra" del argumento en esta lista:

+---------+---------+-----------+
| Process | Command | Arguments |
+---------+---------+-----------+
| 23      | foo     | bar       |
| 48      | foo     | barbaz    |
+---------+---------+-----------+

PD: Supongo que la mayoría de las respuestas me recomendarán usar "pgrep" en lugar de "ps", pero me gustaría evitar esto si es posible.

Respuesta1

No creo que puedas lograr eso usando pssolo. Tienes razón en que filtrar el uso grepno es lo ideal, pero si estás dispuesto a dar pgrepuna oportunidad, puedes acercarte bastante a tus requisitos con:

ps -p $(pgrep -f bar -d',')

La -fopción pgrepbusca en la línea de comando completa (en lugar de solo el nombre del proceso), mientras que la -dopción especifica el delimitador que se usará para encadenar los pids.

Pasar la lista pid pslimita la salida a aquellos que contienen la palabra clave en el comando completo (que incluye los argumentos).

En su ejemplo, donde desea hacer coincidir "foo bar" pero no "foo barbaz", busca una coincidencia exacta con:

ps -p $(pgrep -f "foo bar$" -d',')   # Note the eol anchor '$'

Respuesta2

No creo que exista esa opción; al menos no existe en mi versión de ps. Dudo que muchas psimplementaciones tengan esa opción: el nombre del comando es bastante sencillo de definir, lo que definitivamente no es el caso cuando se trata de argumentos de comando.

En cualquier caso, la filosofía de Unix es encadenar muchas herramientas simples (por ejemplo, psy grep) para realizar tareas más complejas. Se podría argumentar que incluso ps -Clo están presionando; de hecho, creo que MacOS X psno tiene esa opción.

¿Qué estás tratando de hacer exactamente?Cuál es elcontextoa tu pregunta? Porque, según mi experiencia, en el 99% de los casos en los que las personas automatizan cosas analizando el resultado, pslo hacen de manera incorrecta...

información relacionada