Используя awk, достаточно сделать следующее:
awk ' { print NR". " $1 } ' < file.txt
$1 - строка текста на входе, а NR - внутренняя переменная awk, которая отслеживает номер текущей строки (например, Number of Records).
8 мощных встроенных переменных Awk - FS, OFS, RS, ORS, NR, NF, FILENAME, FNR
Решение Жиля мне не подошло, поэтому я придумал циклическое решение. Один вызов curl
на линию.
# for looking at the commands first.
$ cat urls.txt | while read f; do echo curl "${f}" -O; done;
# remove echo when you feel safe.
$ cat urls.txt | while read f; do curl "${f}" -O; done;
ОБНОВЛЕНИЕ:В соответствии с запросом попытка повысить производительность с помощью одного вызова curl
:
$ cat urls.txt | while read f; do echo -e "url = \"${f}\"\n-O\n" >> config; done;
$ curl -K config
Похоже, вы работаете в Windows и используете командную строку. В приведенном выше примере предполагается, что у вас есть среда Linux. Но если вы хотите сделать это в командной строке, создайте пакетный файл (, например mycurlscript.bat
), и поместите в него:
@echo off
for /F "tokens=*" %%A in (urls.txt) do curl.exe -k %%A -i -H "Authorization: HCP YWRtaW4=:29def7dbc8892a9389ebc7a5210dd844" -T acl.xml
Затем сохраните список URL-адресов, которые вы хотите загрузить, в файл с именем urls.txt
. Поместите их в тот же каталог, что и ваш файл acl.xml
, и из командной строки запустите:mycurlscript.bat