REGEX se comporta de maneira diferente!

3

Ao executar o seguinte

echo "abc>asf<tfg"|sed 's/.*>\(.*\)<//'

A saída é:

  

asftfg

Eu não entendo porque tfg é impresso? Meu resultado esperado é asf . No entanto, funciona bem no seguinte.

expr 'echo "abc>asf<tfg"'  : '.*>\(.*\)<'

O que me deixa:

  

asf

E me ajude a extrair a string entre > e < quando a entrada estiver sendo recebida de um pipe.

    
por user174615 12.07.2013 / 16:16

1 resposta

2

O comando s em sed é uma correspondência e substituição. No seu caso, .*>\(.*\)< é o padrão a ser correspondido e é o modelo para substituí-lo por.

Quando você tenta encontrar uma correspondência para .*>\(.*\)< no início de abc>asf<tfg , o resultado é abc>asf< . Esta parte da string é então substituída por asf . tfg não foi correspondido, então nada acontece com ele.

Usar .*>\(.*\)<.* como seu padrão de correspondência deve gerar os resultados desejados.

    
por Taymon 12.07.2013 / 17:06

Tags

Para onde vão os relatórios de erros do sistema? ___ tag123cloud ___ Uma maneira de descrever os recursos e serviços de computação disponibilizados pela Internet que normalmente podem ser acessados de qualquer lugar. ___ tag123openstack ___ Software de código aberto para criação de nuvens privadas e públicas. ___ qstntxt ___

Eu tenho uma instalação particular do OpenStack e estou tentando usar o juju. Como segue:

%pre%

Até agora, tudo parece bom. No entanto, ele não consegue fazer o bootstrap:

%pre%

Um contêiner chamado 'juju-cece0b9817a68cba4780784bf0663e45' contendo um diretório de ferramentas (com os seis arquivos obtidos através do juju sync-tools) e um arquivo de verificação de bootstrap é criado com sucesso.

Meu .juju / environments.yaml é o seguinte:

%pre%

Após algumas leituras, determinei que, aparentemente, preciso fazer upload de uma imagem "precisa" e executar metadados de imagem do juju. Eu criei os metadados da seguinte forma ...

%pre%

... e movido os arquivos resultantes para "streams / v1" no contêiner juju-cece0b9817a68cba4780784bf0663e45.

juju bootstrap -v produziu exatamente o mesmo resultado.

Eu também tentei copiar o openstack-index.json e o openstack-imagemetadata.json para index.json e imagemetadata.json, respectivamente, com base em algum conteúdo que encontrei em um relatório de bug (provavelmente irrelevante).

Novamente, o juju bootstrap -v produziu exatamente o mesmo resultado.

Alguma sugestão?

    
___ tag123juju ___ Juju é uma estrutura de modelagem e execução de serviços de próxima geração. ___ answer318979 ___

Você precisará criar um segundo intervalo, chamado juju-dist, no qual faz o upload dos arquivos de dados da imagem. Em seguida, adicione

%pre%

para você arquivo environments.yaml. Isso deve resolver o erro "não foi possível encontrar imagem precisa".

    
___