パソコンから恋愛まで、みんなの知識、みんなで教えて!

OKWave

締切り済みの質問

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つファイルを保存したいと思っております。


どのように記述をすれば良いのかアドバイスを頂けますでしょうか。

何卒、よろしくお願い致します。

投稿日時 - 2017-12-21 12:16:49

QNo.9410150

困ってます

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

ANo.1

とりあえずこんな感じでファイル名は取れないかな?あとはよしなに・・・

cat test/url.txt | while read line
do
echo `cat $line | awk -F "/" '{print $(NF-1)”.html”}'`
done

投稿日時 - 2017-12-21 19:12:55

補足

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

投稿日時 - 2017-12-21 19:48:33

お礼

アドバイスありがとうございます。

教えて頂いたコマンドを、どのように下記のコマンドに利用すれば良いのでしょうか?
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

何かエラーがあるみたいです。
コマンドの使い方自体が間違っているのでしょうか。

よろしくお願い致します。

投稿日時 - 2017-12-21 19:45:18