2017-02-28 8 views
0

Mac에서 googliser를 사용하여 이미지를 다운로드하고 있습니다. 나는 googliser.sh 내가 어떤 문구를 요청할 수 있었다있다 :Googliser 및 파일 목록

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

그것은 작동하지만 내가 +100 이미지 이미지를 다운로드하려면, 그래서 나는이 목록을 csv 파일과 스크립트를 연결하고자하는 이미지와 파일의 이름은 다음과 같습니다.

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가 제안한 스크립트는 리눅스에서 완벽하게 실행됩니다 :

#!/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에서는 작동하지 않습니다. 아마도 다윈에 명령이 없기 때문일 것입니다. 상대 명령에 대한 아이디어가 있습니까?

+0

원하는 결과를 제공하십시오. 별도의 googliser 모자이크 (기본적으로 googliser.sh를 각 문구에 대해 개별적으로 실행)를 생성하고 싶습니까? 또는 다양한 그림이 포함 된 출력 파일을 원하십니까? 첫 번째 변형은 def입니다. 매우 쉽고, 다른 하나는 반드시 필요하지는 않습니다. 그리고 csv에서이 숫자들은 무엇을 의미합니까? – sbarzowski

+0

안녕하세요, 모자이크가 필요하지 않습니다. (이 옵션을 잊어 버렸습니다, "-g"). 완벽한 출력은 파일의 이름 인 "103784"와 같이 CSV의 번호가있는 별도의 이미지입니다. – Nik

+0

안녕하세요, 저는 Mac에서 체크인했습니다. 저에게 googliser 자체 (적어도 최신 버전)는 Mac에서 작동하지 않는 것 같습니다. googliser 스크립트를 수정하지 않고도 할 수있는 일은 거의 없습니다. – 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

거의 들었습니다. 거기에 폴더가 생성되지만 파일은 생성되지 않습니다. "불법 옵션 -f"및 "불법 옵션 -p"가 나타납니다. ¿ 아마도 나는 다윈에 있기 때문에 이것입니다 ... – Nik

+0

That 's, in Ubuntu 그것은 작동하지만 Darwin에서는 작동하지 않습니다 ... – Nik

0

@sbarzowski의 스크립트는 내 Linux에서 완벽하게 작동합니다. Mac에서 문제가 발생했습니다.

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

하지만 Darwin의 구성과 관련이 있습니다. 그래서 나는 또 다른 질문을 할 것입니다.

감사합니다.

+0

Mac에서 googliser를 실행하면 문제가 해결됩니다. https : //gist.github.com/dardo82/567eac882b678badfd097bae501b64e2. Linux에서 실행중인 파일을 읽는 스크립트이지만 Darwin에 관한 질문은 , 나는 갱신한다. – Nik