2

4 つの列と多数の行を持つ temp.csv ファイルがあります。column0 には、「www.abc.com/one.jpg」などのインターネットからの画像へのリンクがあります。私は通常、単一のリンクに対して次の wget コマンドを使用して、リンクをダウンロードします。

wget http://www.sample.com/temp.jpg  -O /home/tempfolder/

wget コマンドを使用または拡張して、csv ファイルの column0 の下にリストされているすべてのリンクをダウンロードし、フォルダーに保存する方法はありますか?

4

3 に答える 3

3

これを試してみました-wgetはファイルを保存できません。ただし、次の修正があります。

cut -f1 -d, filename | while read url; do wget ${url} -O /home/tempfolder/$(basename ${url}); done

これが役立つことを願っています。

于 2013-05-24T18:45:33.853 に答える
3
cut -f1 -d, filename | while read url; do wget $url -O /home/tempfolder; done

コマンド:

cut -f1 -d, filename

指定された から-f1カンマ ( ) で区切られた行の「カット」フィールド 1 ( ) 。-d,filename

次に、それを次のようにパイプします。

while read url

から来る各行をcut変数に読み込みますurl

次にwget、指定されurlた .

編集:権限の問題を修正するには:

pushd /home/tempfolder ; cut -f1 -d, filename | while read url; do wget $url; done; popd
于 2013-05-24T18:31:43.340 に答える
2

このスクリプトを CSV_FILE と同じディレクトリで実行するか、このファイルへのフルパスを指定してください。

for link in `cat CSV_FILE | cut -d, -f1` 
do
     wget $link -O /home/tempfolder/
done

編集:あなたは私に詳しく説明するように頼みました。これは、そのファイル内の各リンクを反復処理する for ループです。はcat CSV | cut -d, -f1、リンクを保持する列のみを抽出します。for ループはこれらすべてのリンクを繰り返し処理し、1 つずつ名前付きの変数に配置しますlinklink各反復で、その変数を使用して wget を実行します。これをコマンドラインで実行するか、ファイルを作成して、この行を先頭に追加し、#!/bin/shを使用して実行することができます./file_name。これが十分に詳細であることを願っています。

于 2013-05-24T18:31:55.863 に答える