2016-09-29 3 views
0

Ich habe eine Datei, die Links auf jeder Zeile enthält, wie etwas aussehen: „http://short.ly/1Typn4CBash-Skript abrufen Liste der vollständigen URLs aus der Datei von kurzen URLs

Ich bin in der Lage, alle Umleitungen zu folgen und schreiben die endgültige vollständige URL zu einer Datei dieses curl Befehl:

curl -Ls -o /dev/null -w %{url_effective} http://short.ly/1Typn4C | xargs echo >> ./full_urls.txt 

Wenn durch jede Zeile der Datei mit dem gleichen Befehl Looping es endet nur in die Datei die ursprüngliche kurze URL zu schreiben:

while read line 
do 
    finalLink="$(curl -Ls -o /dev/null -w %{url_effective} "$line")" 
    echo "$finalLink" >> ./full_urls.txt 
done < ./short_urls.txt 

Natürlich verstehe ich etwas falsch, wie Shell-Skripte funktionieren.

Antwort

1

Funktioniert für mich, wie es sollte.

$ echo 'https://youtu.be/dQw4w9WgXcQ' >./short_urls.txt 

$ while read line 
> do 
> finalLink="$(curl -Ls -o /dev/null -w %{url_effective} "$line")" 
> echo "$finalLink" >> ./full_urls.txt 
> done < ./short_urls.txt 

$ cat ./full_urls.txt 
https://www.youtube.com/watch?v=dQw4w9WgXcQ&feature=youtu.be 
Verwandte Themen