Как насчет grep -oP "/.*?/bin/java"
Это будет происходить с первого найденного обратного слеша, а затем попытаться найти совпадение до первого появления /bin /java. Столица P получает хорошую поддержку регулярных выражений от grep
или это и не нужно -P с grep даже. grep -oP "/.*/bin/java"
Начинается с первой косой черты, затем максимально соответствует любому символу вплоть до / включая / bin / java.
И если вам приходилось самим решать это с нуля, то, помимо знания регулярных выражений, вы можете быстро протестировать вещи с помощью echo, например, echo user pid# 1 1 00:00 ? 00:04:00 /path/to/java/jdk_1.8/bin/java -foo=bar -foo2=bar2 ... etc. | grep
тогда попробуй шаблоны. И вы можете добавить -i к grep egor, смешанному с -o so -io, чтобы сделать его нечувствительным к регистру (что делает -i).
Примечание- выше это хорошо , но я бы просто отметить , что если вы заинтересованы в регулярных выражениях или .*blah
немного интересно , потому .*
(жадна оценка) может включать в себя мля , так что если у вас есть мля 5 раз тогда это будет соответствовать бла 5 раз. 4 от .*
И последний от бла. Есть .*?blah
(ленивая оценка), которая будет соответствовать любому персонажу до первого бла. хотя это требует -P. Но в вашем случае, когда вы ищете /bin /java, вы не собираетесь получать /bin /java несколько раз подряд, так что нет ничего страшного в том, чтобы использовать .*
Без?.