Obter nome do arquivo de uma wget --content-disposion

2

Dentro de um script bash, estou baixando dinamicamente um arquivo e, portanto, uso wget --content-dispositionpara garantir que os nomes dos arquivos estejam corretos, mas como eu recuperaria o nome do arquivo wgetsalvo como?

Roflmuffin
fonte
Deseja procurar um nome de arquivo durante o download ou antes de baixar? Se você quiser ver filename qual servidor enviar, você pode digitarwget --spider
makgun
@makgun, eu preferencialmente gostaria de obter o nome do arquivo durante o download. A intenção é que eu processe o arquivo assim que o download for concluído.
Roflmuffin 9/10/2015
Você não usou a barra de progresso? Ela já tem indicador que mostra a localização do arquivo e seu nome na barra de progresso
makgun
Desculpe, eu sou muito novo no bash & pipes, como eu iria canalizar essa saída para outro aplicativo (como grep), onde eu pudesse grep -eo conteúdo?
Roflmuffin 9/10/2015

Respostas:

1

Aqui está uma maneira de fazer isso com wgete cut:

wget -nv https://upload.wikimedia.org/wikipedia/commons/5/54/Golden_Gate_Bridge_0002.jpg 2>&1 |cut -d\" -f2

Explicação, wget -nv ...imprime algo como isto:

2016-11-15 14:58:44 URL:https://upload.wikimedia.org/wikipedia/commons/5/54/Golden_Gate_Bridge_0002.jpg [1072554/1072554] -> "Golden_Gate_Bridge_0002.jpg.22" [1]

A -nvbandeira no wget só torna "não-verbose" (Veja: man wget)

Desde que wgetescreve sua saída STDERR, temos que redirecioná-lo para STDOUTantes que possamos extrair o texto; Para fazer isso, adicionamos 2>&no final do wget. Em seguida, para sair apenas o nome do arquivo que eu usei cut. O -d\"é especificar que estamos usando "como delimitador. O -f2especifica que queremos a segunda "coluna", ou seja, os dados entre o primeiro e o segundo delimitadores ".

Primeira coluna: 2016-11-15 14:58:48 URL:https://upload.wikimedia.org/wikipedia/commons/5/54/Golden_Gate_Bridge_0002.jpg [1072554/1072554] -> "Golden_Gate_Bridge_0002.jpg.23` "[1]

varlogtim
fonte