• 締切済み

curlでファイル名にURLの一部を利用するには?

Mac環境(OS10.8.5)のターミナル利用 プログラミングは知識が無く、ネットで調べても自力では解決しなかったので、皆様のお知恵を頂ければ幸いです。 「url.txt」には下記のようなURLが複数記載されています。 ~.com/test/1594/data ~.com/test/6416/data ~.com/test/5168/data ※「1594」「6416」などの個所は、実際には規則性の無いランダムの10桁の数字となっております cat test/url.txt | xargs -P3 -t -n1 curl -O 上記の状態では、出力されるファイルは「test」と言うファイル名のファイルが1つしか出来ません。(全て上書き保存されてしまうため) これを「1594.html」「6416.html」「5168.html」と言うように、1つ1つファイルを保存したいと思っております。 どのように記述をすれば良いのかアドバイスを頂けますでしょうか。 何卒、よろしくお願い致します。

みんなの回答

回答No.1

とりあえずこんな感じでファイル名は取れないかな?あとはよしなに・・・ cat test/url.txt | while read line do echo `cat $line | awk -F "/" '{print $(NF-1)”.html”}'` done

vvv_052
質問者

お礼

アドバイスありがとうございます。 教えて頂いたコマンドを、どのように下記のコマンドに利用すれば良いのでしょうか? cat test/url.txt | xargs -P3 -t -n1 curl -O 教えて頂いたコマンドを、どのように利用したら良いのかも分からないくらいのレベルです。 url.txtに記載されているURLの末尾が、全部違っていれば問題は無かったのですが、末尾が全部同じのため保存時のファイル名でつまづいてしまっています。 ここまで何とか自力で調べて出来たのですが、あと一歩をアドバイス頂ければ助かります。 教えて頂いたコマンドをそのまま打ち込んだところ、下記のように記載されているURLの数だけ表示されました。 cat: ~.com/test/1594/data: No such file or directory awk: syntax error at source line 1 context is {print >>> $(NF-1)? <<< awk: illegal statement at source line 1 何かエラーがあるみたいです。 コマンドの使い方自体が間違っているのでしょうか。 よろしくお願い致します。

vvv_052
質問者

補足

url.txtに記載されているURLについてですが、ここでは「~」を使って省略していますが、実際は各行にはhttpから始まるアドレスが記載されています。

すると、全ての回答が全文表示されます。