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
, awk
sonst python
wä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 spliturl
ist die leere Zeichenfolge (also die Zeichenfolge vor dem ersten /
).
Antwort2
Hier ist bash
auch 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