Benutzer Diskussion:Cirrussc

Aus DebianforumWiki
Zur Navigation springen Zur Suche springen

Einzeiler, Schleifen und andere Schweinereien

00:18:14   Cirrussc | hat jemand nen einzeiler parat, welcher das automatische
                    | herunterladen (wget...) vieler pdf dateien erledigt, welche
                    | identische dateinamen mit einer zweistelligen fortlaufenden nummer
                    | (beginn 01) haben?
00:20:43       TRex | einzeiler nich
00:21:00       TRex | for-schleife
00:21:51   Cirrussc | ja irgendwie so :P
00:24:12       TRex | for ((i=1; $i<10; $i++)); do wget url${i,formatgedöns}.pdf; done
00:27:02       TRex | ein fall für yeti
00:27:20          * | TRex hängt mal n paar Knoblauchzehen an die Fragestellung

Mal mit TRexs Vorschlag anfangen:

$ for ((i=1; i<10; i++)); do $(printf 'echo url%02d.pdf\n' $i) ; done
url01.pdf
url02.pdf
url03.pdf
url04.pdf
url05.pdf
url06.pdf
url07.pdf
url08.pdf
url09.pdf

Mit bash-schen Stringoperationen kann das dann so aussehen:

$ for ((i=101; i<110; i++)); do echo url${i:1:2}.pdf ; done
url01.pdf
url02.pdf
url03.pdf
url04.pdf
url05.pdf
url06.pdf
url07.pdf
url08.pdf
url09.pdf

...oder so:

$ for i in {00..10} ; do echo url${i}.pdf ; done
url00.pdf
url01.pdf
url02.pdf
url03.pdf
url04.pdf
url05.pdf
url06.pdf
url07.pdf
url08.pdf
url09.pdf
url10.pdf

...oder so:

$ for i in url{00..10}.pdf ; do echo $i ; done
url00.pdf
url01.pdf
url02.pdf
url03.pdf
url04.pdf
url05.pdf
url06.pdf
url07.pdf
url08.pdf
url09.pdf
url10.pdf

Kann das Programm dem man die vielen Argumente geben will diese alle in einem Aufruf abarbeiten, dann geht's auch so:

$ echo wget url{00..10}.pdf
wget url00.pdf url01.pdf url02.pdf url03.pdf url04.pdf url05.pdf url06.pdf url07.pdf url08.pdf url09.pdf url10.pdf

Das scheinen mir die naheliegensten Variationen.