2

Внутри bash-скрипта я динамически загружаю файл, и поэтому я использую wget --content-disposition чтобы убедиться, что имена файлов правильные, но как мне получить имя файла, wget сохранила его как?

1 ответ1

1

Вот способ сделать это с помощью wget и cut:

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

Пояснение, wget -nv ... выводит что-то вроде этого:

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]

Флаг -nv на wget делает его «не многословным» (см .: man wget)

Поскольку wget записывает свой вывод в STDERR мы должны перенаправить его в STDOUT прежде чем мы сможем извлечь текст; для этого мы добавляем 2>& в конце wget . Затем, чтобы получить только имя файла в конце, я использовал cut . -d\" указывает, что мы используем " в качестве разделителя. -f2 указывает, что нам нужен второй "столбец", т. Е. Данные между первым и вторым разделителями " .

Первый столбец: 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]

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .