Não tenho certeza se você está procurando por isso. Veja se isso ajuda.
expr 'A234321=http://www.google&x=y' : '^[^=]*=\(.*\)'
Eu preciso de um texto assim:
A234321=http://www.google..... a normal URL
E retire apenas o URL, eliminando a primeira parte. Acho que posso usar expr
para fazer isso, mas não consigo descobrir o caminho certo
O regex inteiro que eu posso usar é http:[a-zA-Z0-9/_]+
Não tenho certeza se você está procurando por isso. Veja se isso ajuda.
expr 'A234321=http://www.google&x=y' : '^[^=]*=\(.*\)'
Você não precisa expr para isso. Você pode usar as construções de shell ${VAR#PATTERN}
, que expande para $VAR
com o prefixo mais curto que corresponde ao padrão especificado retirado, ${VAR##PATTERN}
que retira o prefixo mais longo e ${VAR%PATTERN}
e ${VAR%%PATTERN}
quais sufixos de faixa. p>
text='A234321=http://www.example.com/wibble'
protocol=${text%%://*}
url=${protocol##*[!a-z]}://${text#*://}
Supondo que seu texto está sempre separado por um caractere '=', o cut
fornecerá o URL:
url='echo $text | cut -f 2 -d"="'
Basicamente, aqui estamos cortando o campo de texto, delimitado por =
e extraindo o segundo campo.