Qué tal si grep -oP "/.*?/bin/java"
Esto irá desde la primera barra hacia adelante que encuentre, luego intente hacer coincidir hasta la primera aparición de / bin / java. La capital P obtiene un buen soporte de expresiones regulares de grep
o esto y no necesita el -P con grep incluso. grep -oP "/.*/bin/java"
Comienza desde la primera barra diagonal hacia adelante y luego compara lo más posible cualquier carácter hasta e incluyendo / bin / java.
Y si tuvo que resolverlo usted mismo desde cero, además de saber sobre expresiones regulares, puede probar las cosas rápidamente con eco, por ejemplo. echo user pid# 1 1 00:00 ? 00:04:00 /path/to/java/jdk_1.8/bin/java -foo=bar -foo2=bar2 ... etc. | grep
a continuación, intente patrones. Y puede agregar un -i al grep, por ejemplo, o mezclarlo con -o para que -io haga que no se distinga entre mayúsculas y minúsculas (lo que hace -i).
nota: lo anterior está bien, pero me gustaría señalar que si está interesado en expresiones regulares o tecnicismos .*blah
es un poco interesante porque el .*
(es una evaluación codiciosa) puede incluir un bla, así que si tiene bla 5 veces, entonces coincidirá con bla 5 veces. 4 de .*
y el último de bla. Ahi esta .*?blah
(evaluación perezosa) que coincidiría con cualquier personaje hasta el primer bla. aunque eso requiere -P. Pero en su caso buscando / bin / java, no va a obtener / bin / java varias veces en una línea, por lo que no es un gran problema / problema, usar el .*
sin el ?.