Dentro de um script bash, estou baixando dinamicamente um arquivo e, portanto, uso wget --content-disposition
para garantir que os nomes dos arquivos estejam corretos, mas como eu recuperaria o nome do arquivo wget
salvo como?
grep -e
o conteúdo?
Dentro de um script bash, estou baixando dinamicamente um arquivo e, portanto, uso wget --content-disposition
para garantir que os nomes dos arquivos estejam corretos, mas como eu recuperaria o nome do arquivo wget
salvo como?
grep -e
o conteúdo?
Respostas:
Aqui está uma maneira de fazer isso com wget
e 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 -nv
bandeira no wget só torna "não-verbose" (Veja: man wget
)
Desde que wget
escreve sua saída STDERR
, temos que redirecioná-lo para STDOUT
antes 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 -f2
especifica 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]
wget --spider