2017-02-28 3 views
0

Macではgoogliserを使用してイメージをダウンロードしています。グーグライザーとファイルのリスト

$ ./googliser.sh --phrase "Mona Lisa – Leonardo da Vinci" --title 'Mona Lisa_Leonardo_da_Vinci' --upper-size 100000 --lower-size 2000 

それは動作しますが、私は100個のイメージ画像をダウンロードしたいので、私はイメージのリストをCSVファイルでスクリプトを接続したいと:私はgoogliser.shは、私はいくつかのフレーズを求めることができたしてい

Mona Lisa – Leonardo da Vinci, 103784 
The scream - Munch, 78332 
The Starry Night - Vincent van Gogh, 34763 
etc. 

ダーウィンでこれが可能かどうか誰にでも教えてください。

ありがとうございます!

PD:コメントで述べたように、Macでgoogliserを実行している問題を解決しました:https://gist.github.com/dardo82/567eac882b678badfd097bae501b64e2。 @sbarzowskiによって提案されたスクリプトは、Linux上で完璧に動作します。

#!/bin/bash 
mkdir output 
while read line; do 
    phrase="$(echo $line | cut -d ',' -f1)" 
    filename="$(echo $line | cut -d ',' -f2)" 
    echo "phrase: $phrase" 
    echo "filename: $filename" 
    # googliser uses phrase with spaces replaced with underscores 
    # as image directory 
    image_dir="$(echo "$phrase" | sed 's/ /_/g')" 
    # in case it already exists 
    rm -rf "./$image_dir" 

    ./googliser.sh --phrase "$phrase" --upper-size 100000 --lower-size 2000 -g -n1 
    mv "./$image_dir"/* "output/$filename" 
done <data.csv 

しかし、Macでは動作しません。おそらくダーウィンにはread lineというコマンドがないからです。相対的なコマンドのいくつかのアイデア?

+0

希望の結果を入力してください。別々のgoogliserモザイク(基本的にgoogliser.shを各フレーズごとに別々に実行しています)をいくつも作成しますか?または、さまざまな写真を含む1つの出力ファイルを用意したいでしょうか?最初の変種はdefです。非常に簡単、他の1つは必ずしもそうではありません。 csvのこれらの数字はどういう意味ですか? – sbarzowski

+0

こんにちは、私はモザイクは必要ありません(私はこのオプションを忘れました、 "-g")。完璧な出力は、ファイルの名前としてのcsvの番号である "103784"という別々のイメージです。 – Nik

+0

もう一度、Macでチェックインしました。 googliser自体(少なくとも現在のバージョン)はMacで動作しないようです。グーグライザスクリプトを変更しなければ、それについてはほとんどできません。 – sbarzowski

答えて

0

はい、これは簡単です。ファイルを繰り返し、各行に対してgoogliserを呼び出します。

完全なソリューション(私はそれが動作確認):もちろん

mkdir output 
while read line; do 
    phrase="$(echo $line | cut -d ',' -f1)" 
    filename="$(echo $line | cut -d ',' -f2)" 
    echo "phrase: $phrase" 
    echo "filename: $filename" 

    # googliser uses phrase with spaces replaced with underscores 
    # as image directory 
    image_dir="$(echo "$phrase" | sed 's/ /_/g')" 
    # in case it already exists 
    rm -rf "./$image_dir" 

    ./googliser.sh --phrase "$phrase" --upper-size 100000 --lower-size 2000 -g -n1 
    mv "./$image_dir"/* "output/$filename" 
done <data.csv 

それは間に合わせ&ですが、あなたはこのを数回実行する必要がある場合には十分なはずです。より強固なものが必要な場合は、csvを適切に(エスケープして)解析し、エラーを処理する必要があります。そのような場合、Python/Perl/Rubyがおそらくより良いツールになるでしょう。

+0

私はダーウィンにいるので、これはおそらく... – Nik

+0

それは、Ubuntuでそれですそれは動作しますが、ダーウィンではありません。 – Nik

0

[OK]を、@ sbarzowskiからのスクリプトは、私のLinux上で完全に動作します。

usage: ls [-ABCFGHLOPRSTUWabcdefghiklmnopqrstuwx1] [file ...] 
ls: illegal option -- I 

しかし、それはDarwinの設定と関係しています。だから別の質問を開きます。

ありがとうございます!

+0

Macでgoogliserを実行している問題を解決しました:https://gist.github.com/dardo82/567eac882b678badfd097bae501b64e2。Linuxで動作するファイルを読み込むためのスクリプトですが、私は更新する。 – Nik

関連する問題