awk / sed imprime todos os dígitos antes do símbolo correspondente

0

Eu tenho entradas com linhas como essa (é uma string CIGAR do formato sam, mas isso não importa agora):

123M76N55M4S
6M7N25M
32M488N

E eu quero extrair todos os N e dígitos anteriores:

76N
7N
488N

Eu tentei este comando:

sed -r 's/^.*([0-9]+N).*$//'

Mas entro na saída apenas o último dígito. Como posso obter todos os dígitos anteriores?

    
por Poiu Rewq 08.02.2017 / 14:42

1 resposta

1

Isso será suficiente:

grep -o '[0-9]\+N'

Seu regex de segurança falha porque o .* é muito ganancioso. Você precisa se certificar de não consumir nenhum dos dígitos:

sed -r 's/(.*[^0-9])?([0-9]+N).*//'
    
por 08.02.2017 / 14:48

Tags