Como fazer a sintaxe do regex do sed funcionar como python ou javascript? [duplicado]

0

Eu fiz uma pergunta insira uma string em uma lista de variáveis no arquivo de texto [use sed]

Em que @RomanPerekhrest me mostrou uma sintaxe de regex diferente.

\(=([^)]*\)) pode capturar [^)]* como grupo 1. Isso é confiante para mim.

Você pode verificar o resultado no link

link

Esse \(([^\)]*)\) é o correto em minha mente, mas está quebrado no sed.

Então, pergunto-me como fazer com que o sed use o padrão de sintaxe regex como python ou javascript (padrão comum em vários idiomas).

    
por Mithril 06.01.2018 / 10:54

1 resposta

1

Você está procurando por expressões regulares PCRE do estilo Perl, mas essa não é uma sintaxe em conformidade com POSIX e não é suportada por implementações típicas das ferramentas de linha de comando padrão, como sed . O que é suportado é a sintaxe conhecida como Basic Regular Expression (BRE) e Extended Regular Expression (ERE). Em sed o primeiro é o padrão e o segundo é ativado com -E (no GNU sed -r também funciona).

Você ocasionalmente verá versões de ferramentas padrão com algum suporte para PCRE (por exemplo, o grep do GNU tem o sinal -P ), mas essa é a exceção, não a norma.

Consulte a seção Padrões da página de regex da Wikipédia para obter detalhes.

    
por 06.01.2018 / 11:12