質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

URL

URL(ユニフォームリソースロケータ)とは、インターネット上のリソース(Webページや電子メールの宛先等)を特定するための形式的な記号の並びの事を言う。

Q&A

解決済

4回答

5626閲覧

ファイル内のurlをwget/curlコマンドでファルダかローカルに保存する方法

trafalbad

総合スコア303

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

URL

URL(ユニフォームリソースロケータ)とは、インターネット上のリソース(Webページや電子メールの宛先等)を特定するための形式的な記号の並びの事を言う。

0グッド

0クリップ

投稿2018/04/13 04:49

以下のファイルimg.csvに画像のurlのリストが保存されています。
本来 curl =LO [url] でローカルに保存できるのですが、
urlがファイルに保存されているときはどうしたらいいのでしょうか?

wgetも使いましたが、
cat omg.csv | wget -I-
だと保存先のフォルダの指定ができません、

どうしたらファイルに保存してある画像urlを指定先かローカルに保存できるのでしょうか?

ご教授お願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答4

0

xargsを使うと簡単にできます。

bash

1cat img.csv | xargs -I URL curl [オプション] URL 2cat img.csv | xargs -I URL wget [オプション] URL

ちなみに「URL」の部分は任意の文字列でOKです。

蛇足ですが、gnue版のxargsでは、以下のような感じにすると並列実行(例では3重)したりもできます。

bash

1cat img.csv | xargs -L1 -P3 curl [オプション]

xargsの使い方に慣れると非常に便利なので、一度、使い方を調べてみては?
manpage of xargs

投稿2018/04/13 06:26

pi-chan

総合スコア5936

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

trafalbad

2018/04/13 07:37

参考になりました!ありがとうございます
dodox86

2018/04/13 09:16

最初に回答させていただいたと言うのもあってかベストアンサーをいただきましたが、個人的にこちらの回答の方がワンライナーだし、シンプルでいいな、と思いました。xargs "-I replace-str" のオプションは今回初めて知りました。どうもありがとうございます。
guest

0

これで行けるはず。

wget -i img.csv -P 保存先ディレクトリ

投稿2018/04/13 06:02

編集2018/04/13 08:45
KojiDoi

総合スコア13671

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

for url in $(cat img.csv)
do
(cd 保存したいディレクトリ; wget -nd $url)
done

投稿2018/04/13 05:12

編集2018/04/13 05:14
matplus

総合スコア16

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

img.csv ファイルが行ごとにURLが並んでいるとして

Plain

1http://server1/ 2http://server2/ 3http://server3/

bashで(bシェルで十分)

bash

1#!/bin/sh 2 3for url in `cat img.csv`; do 4 # 確認の為、echo 5 echo ${url} 6 7 # wgetなら 8 wget ${url} 9 10 # curlなら 11 curl ${url} 12done

ではいかがでしょう。(良くあるパターンです)
wgetcurlのコマンドラインオプションは適当に追加してください。

投稿2018/04/13 05:05

dodox86

総合スコア9183

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問