Fügen Sie ein Array von Jahren in eine Liste von URLs ein

Fügen Sie ein Array von Jahren in eine Liste von URLs ein

Ich habe eine Liste mit URLs wie im folgenden Beispiel.

/test/test

Ich habe auch eine Reihe von Jahren

[1999, 2000, 2001].  

Ich versuche, eine Möglichkeit zu finden, den Ausdruck einer Liste von URLs mit eingefügtem Jahr wie unten beschrieben zu automatisieren:

/test/1999/test
/test/2000/test
/test/2001/test

Ich muss das nicht auf automatisierte Weise tun sed, awksonst pythonwäre alles in Ordnung!

Antwort1

Sie geben nur eine „URL“ an, das folgende Python-Programm unterstützt eine Liste davon:

urls = [
    '/test/test',
    ]

years = [1999, 2000, 2001]

for url in urls:
    for year in years:
        spliturl = url.split('/')
        spliturl.insert(2, str(year))
        print('/'.join(spliturl))

Der Trick besteht darin, das Jahr an der zweiten Position einzufügen, die erste Position spliturlist die leere Zeichenfolge (also die Zeichenfolge vor dem ersten /).

Antwort2

Hier ist bashauch eine Lösung:

declare -a a=(1999 2000 2001)
url='/test/test'
for i in "${a[@]}" ; do echo "$url" | sed "s:/:/$i/:2"; done

Antwort3

Wie wäre es mit

echo test/{1999,2000,2001}/test

oder auch

echo test/{1999..2001}/test

verwandte Informationen