Tenho uma linha de palavras diferentes armazenadas em um arquivo txt
N/A 9.0 Yes Yes N/A N/A N/A N/A 8.8 Yes Yes N/A N/A N/A N/A 8.7 Yes Yes N/A N/A N/A N/A 9.2 Yes Yes Yes Yes Yes Yes 9.1 Yes Yes Yes Yes Yes Yes 9.0 Yes Yes Yes Yes Yes Yes 8.8 Yes Yes Yes Yes Yes Yes 8.7 Yes Yes Yes Yes Yes Yes 22.04 Yes Yes Yes Yes Yes Yes AKS Microsoft Azure v1.27 EKS Amazon v1.27 Amazon Linux 2 is certified
Quero capturar a parte depois de "Azure" até o primeiro espaço em branco - esse é o número da versão sem o "v".
Meu comando (gnu) sed é o seguinte
cat out.txt | sed -E "s/.*Azure\s+v(.*?)\s+.*/\1/"
No regex101 funciona como deveria , mas na saída do meu terminal eu recebo isso
1.27 EKS Amazon v1.27 Amazon Linux 2 is
Parece que o restante da linha após o número da versão, até "certificado", não é consumido.
o que estou perdendo? Obrigado.
.*
é ganancioso mesmo em-E
, isso?
não muda isso (é um recurso Perl e PCRE).Felizmente, você não precisa disso: você sabe que apenas espaços que não sejam em branco devem ser correspondidos.