2013-11-27 3 views
0

이 스크립트가 실행될 때 보관해야하는 이미지가 누락되었습니다. 나는 이것이 나의 들여 쓰기 또는 나의 MD5 합계와 관련이 있을지도 모른다라고 생각한다. 나는 내가 생각할 수있는 모든 것을 시도했다. 여기 bash 쉘 스크립트의 Md5 sum에서 잘못된 결과가 발생했습니다.

올바른 들여 쓰기 밖으로 코드입니다 :

#!/bin/sh 

if [ ! -d "$1" ]; then 
    echo Directory "$1" cannot be found. Please try again. 
    exit 
fi 

if [ $# -eq 1 ]; then 
    echo "usage: Phar image_path archive_path" 
    exit 
fi 

if [ -d "$2" ]; then 
    echo "archive exists" 
else 
    echo "the directory 'archive' does't exist. Creating directory 'archive'." 
    mkdir -p ~/archive 
fi 

find $1 -iname "IMG_[0-9][0-9][0-9][0-9].JPG" | cat > list.txt 

[ -f ~/my-documents/md5.txt ] && rm md5.txt || break 
while read line; 
    do md5sum $line | xargs >> md5.txt 
done < list.txt 

sort -k 1,1 -u md5.txt | cat > uniquemd5.txt 
cut -d " " -f 2- uniquemd5.txt > uniquelist.txt 

sort uniquelist.txt -r -o uniquelist.txt 
for line in $(cat uniquelist.txt) 
do 
    file=$(basename $line) path="$2/file" 

    if [ ! -f $path ]; 
    then 
     cp $line $2 
    else 
     cp $line $path.JPG 
    fi 

    rm uniquelist.txt md5.txt uniquemd5.txt list.txt 

done 
+2

이미지에 실제 코드를 게시하십시오! – Pepe

+0

죄송합니다. – WhereAreYouSyntax

+0

스크립트로 무엇을 하려는지 설명해 주시겠습니까? 약간 혼란스러운 선이 있습니다. 왜 $ 1을 (를) 찾으세요? - IMG_ [0-9] [0-9] [0-9] [0-9] .JPG "| cat> list.txt'가 아니라'find $ 1 -iname "IMG_ [0-9] [0-9] [0-9] [0-9] .JPG"> list.txt'가 있습니다. 'xargs'는'md5sum $ line |에 무슨 일을합니까? xargs >> md5.txt'? –

답변

1

while read line; 
    do md5sum $line | xargs >> md5.txt 
done < list.txt 

아마

while read line; 
    do md5sum "$line" 
done <list.txt> md5.txt 

견적 매개 변수 확장해야이 루프, 당신이 필요한 이유는 불분명 .

관련 문제