awk
Mesmo que seja possível ler um arquivo e compor o comando que você quer em um ciclo, há um comando que você pode achar mais confortável: awk
.
Se o nome do arquivo for todo sem espaços, você pode usar essa sintaxe simples para criar o comando desejado e, em seguida, redirecionar ( |
) essa saída para um shell ( sh
) que o executará.
Com $1
, você pega a primeira coluna, com $2
a segunda e assim por diante ...
awk '{print "wget -O "$2,$1}' links.txt | sh
Se houver espaços nos nomes, você deve fazer mais alguns exercícios:
awk -F $'\t' '{print "wget -O\""$2"\" " $1}' links.txt | sh
Aqui você deve especificar que o separador de campo -F
é a guia ( -F $'\t'
)
e você tem que imprimir o "
antes e depois do nome do arquivo. Uma vez que você está dentro de uma string, você precisa escapar [ 2 ] para eles echo "Those are double quote\""
.
Tente este comando sem o redirecionamento (então sem o | sh
) para ter a possibilidade de controlar a saída, então execute-o quando tiver certeza ...
Use man awk
para ter mais ajuda.