sed regex para grupo de captura entre delimitadores

sed regex para grupo de captura entre delimitadores

Eu tenho um arquivo de duas linhas do qual estou tentando obter algumas informações para um script bash usando sed.

# File Comment
PrefixForInformation {information to be captured}

Preciso obter as informações entre, mas não incluindo, as chaves. Eu tenho o regex PCRE /{(.*)}/ou\s{([^}]*) parece funcionar emRegex on-line 101mas não consigo passar para uma configuração sed funcional.

Responder1

$ sed -n 's/.*{\(.*\)}.*/\1/p' file
information to be captured

Como funciona

  • -n

    Isso diz ao sed para não imprimir nada, a menos que solicitemos explicitamente.

  • s/.*{\(.*\)}.*/\1/p

    Este comando substituto captura como grupo 1 tudo entre duas chaves. A linha inteira é substituída pelo grupo 1, denotado \1. O pfinal informa ao sed que, se uma correspondência for feita, ele deverá imprimir o resultado.

informação relacionada