curl
ma -o
, --output
opcji, która przyjmuje jeden argument, wskazując wyjście Nazwa pliku powinna być zapisana zamiast stdout
. Jeśli używasz {}
lub []
do otaczania elementów w adresie URL (zwykle używanych do pobierania wielu dokumentów), możesz użyć #
znaku, a następnie numeru w specyfikatorze nazwy pliku. Każda taka zmienna zostanie zastąpiona odpowiednim ciągiem dla pobieranego adresu URL. Aby pobrać wiele plików, dodaj listę tokenów oddzieloną przecinkami {}
. Jeśli części adresów URL, które mają zostać pobrane, to numery sekwencyjne, możesz określić zakres za pomocą []
.
Przykłady:
curl http://www.abc.com/123/{def}/{ghi}/{jkl}.mno -o '#1_#2_#3.mno'
Zwróć uwagę na cudzysłowy wokół argumentu opcji (niepotrzebne, chyba że nazwa pliku zaczyna się od jednej z rozszerzonych zmiennych). Powinno to doprowadzić do pliku wyjściowego def_ghi_jkl.mno
.
curl http://www.abc.com/123/{def}/{ghi}/{jkl,pqr,stu}.mno -o '#1_#2_#3.mno'
Powinno to doprowadzić do plików wyjściowych def_ghi_jkl.mno
, def_ghi_pqr.mno
a def_ghi_stu.mno
.
curl http://www.abc.com/123/{def}/{ghi}/[1-3].mno -o '#1_#2_#3.mno'
Powinno to doprowadzić do plików wyjściowych def_ghi_1.mno
, def_ghi_2.mno
, def_ghi_3.mno
.
Oto sztuczka polegająca na zastąpieniu Basha
{$link:23: 23}
usunie „ http://www.abc.com/123/ ” to${parameter:offset:length}
, po czymtr
zastąpi/
się_
.Teraz możesz łatwo używać wget lub curl
Możemy również użyć awk, to wyodrębni ostatnie trzy pola z ciągu wejściowego:
źródło
Nazwa pliku, którego potrzebujesz, nie może
wget
być wyodrębniona sama, więc musi być sprzedawany przez skrypt powłoki:Lub jeśli podoba Ci się to jako jedna linia:
źródło
Jeśli wolisz zwijanie, najbardziej bezpośrednim sposobem jest:
nazwa pliku: nazwa pobranego pliku
identyfikator pliku: identyfikator pliku w widoku sieciowym dysku Google w formacie https://drive.google.com/file/d/ identyfikator pliku / widok
źródło