Usando sed para obter todas driver e executor mensagens relacionadas a "Lançamento":
$ sed -n -E 's/^.*Launching (driver|executor) ([^ ]*).*worker-[0-9]*-([^-]*).*$/ /p' file.in
driver-20170427105017-0000 192.168.5.242
app-20170427105527-0000/0 192.168.5.175
app-20170427105527-0000/1 192.168.5.37
-
[^ ]*corresponderá a qualquer número de qualquer caractere, exceto ao espaço. -
esão referências anteriores ao que corresponde ao segundo e terceiro parênteses, respectivamente. O segundo parênteses contém[^ ]*e corresponderá ao texto apósLaunching driverouLaunching executor, e o terceiro parênteses contém[^-]*e corresponderá ao endereço IP (até o-que encerra o endereço). -
^e$ins/^...$/.../pancora a expressão regular no início e no final da linha, enquantopdiz asedpara "imprimir" o resultado da substituição, se uma for feita.
Como alternativa, e possivelmente mais robusta devido à mágica de expressão menos regular, usando awk :
$ awk '/Launching/ { split($NF, a, "-"); print $7, a[3] }' file.in