Usando sed para substituir string

0

Existem duas variáveis bash no script que estou construindo

num1=site_2734
num2=796

Ele precisa ler um arquivo svg contendo a string:

http://xxx-xxx.xxx.com/var/site_2734/storage/issues/796/svg/img/page-002-img1.jpg?q=80

Eu quero substituir a primeira parte por 'nothing' e remover o '? q = 10' para que se torne

page-002-img1.jpg

Então eu tentei algo assim com o sed que não está funcionando

sed -i -e 's/\(http:\/\/xxx-xxx.xxx.com\/var\/$num1\/storage\/issues\/$num2\/svg\/img/\).*\(\)//'

Qualquer ajuda seria muito apreciada

    
por jquerynewbie 04.05.2018 / 23:31

1 resposta

2

Simples o suficiente, desde que o nome do arquivo seja conhecido por nunca conter barras ou pontos de interrogação:

sed --in-place 's_http.*/img/\(.*\)?q=[0-9][0-9]*__' inputfile

Se você realmente precisa do site e dos números de problema, pode montar o comando sed e implementá-lo como uma variável:

sedcmd='s_http.*'$num1'.*'$num2'.*/img/\(.*\)?q=[0-9][0-9]*__'
sed --in-place "$sedcmd" inputfile
    
por 04.05.2018 / 23:33

Tags