Em vez de usar o grep regex estendido ( -E
), use perl-regex grep ( -P
), com um lookbehind e lookahead.
$ grep -oP "(?<=\[)[0-9].+(?=\])" logfile
113a6d9e-7b06-42c6-a52b-7a4e4d2e216c
113a6d9e-7b06-42c6-a52b-7a4e4d2e216c
Aqui, (?<=\[)
indica que deve haver um \[
precedente e (?=\])
indica que deve haver um \]
a seguir, mas não para incluí-los na saída de correspondência.