awk
Даже если есть возможность прочитать из файла и составить команду, которую вы хотите в цикле, есть команда, которую вы можете найти более удобной: awk
.
Если имя файла не содержит пробелов, вы можете использовать этот простой синтаксис для создания нужной команды, а затем перенаправить (|
) этот вывод в оболочку (sh
), которая его выполнит.
С $1
долларом Вы берете 1-ую колонку, с $2
вторым и так далее ...
awk '{print "wget -O "$2,$1}' links.txt | sh
Если в именах есть пробелы, вам нужно больше заниматься в тренажерном зале:
awk -F $'\t' '{print "wget -O\""$2"\" " $1}' links.txt | sh
Здесь вы должны указать, что разделитель полей -F
является вкладкой (-F $'\t'
), и вы должны напечатать "
до и после имени файла. Поскольку вы находитесь внутри строки, вам нужно убежать [ 2 ] из них
echo "Those are double quote\""
.
Попробуйте эту команду без перенаправления (то есть без | sh
), чтобы иметь возможность управлять выводом, затем выполните ее, когда вы уверены ...
Используйте man awk
чтобы получить дополнительную помощь.