2017-03-16 6 views
0

저는 유닉스가 처음이므로 도움을 정말로 사용할 수 있습니다.CSV 파일의 정보를 사용하여 사진의 이름을 바꾸는 방법

사진에있는 항목의 코드와 일치하도록 많은 사진의 이름을 바꾸고 싶습니다. 원본 .jpg 이름을 가진 .csv 파일이 있고 연속 된 열에 따라 사진 이름을 바꿀 코드가 있습니다.

IMG_1234.JPG, AB001, AB003, AB004
IMG_1345.JPG, AB011, AB012, AB013, AB014, AB015
IMG_1456.JPG, AB112
IMG_1678.JPG, AB125, AB126

예 :

그래서 나는 IMG_1234.JPG 3 번 복사 나는 내가 복사 파일의 이름을 바꿀 수있는 스크립트를 필요로하고 있음을 알 수 AB001, AB003 및 AB004 등

로 변경하려면,하지만 난 알아낼 수 없습니다 스크립트를 실행하는 방법을 csv 파일 및 &이 빈 셀 때까지 다음과 같은 이름에 .JPG 이름을 변경 한 후 다음 행으로 이동하고 & 이름을 변경 복사 복사 그 .JPG 등 등

내 질문은 분명하다 희망 나는 사과 내 제한된 지식.
미리 감사드립니다.

편집 : 사진 이름이 다른 폴더에 있기 때문에 이미지 이름 앞에 공백이있는 디렉토리가 있습니다. 예를 들어 :

./Photos이 당신이 원하는 일을해야/Samples1-100/IMG_1134.JPG에게

+0

파일 이름이 IMG_1234 또는 IMG_1234.jpg입니까? – Cyrus

+0

이름이 .jpg – Dasha

답변

0

을 분류. csv 파일의 파일 이름은 스크립트에 대한 매개 변수로 제공됩니다. 복사 명령 내에서 경로를 조정할 수도 있습니다. 현재는 모두 동일한 디렉토리에 있어야합니다. Mac 또는 Linux에서이 파일을 사용하는 경우 "cp"를 사용하여 원본 파일에 대한 심볼릭 링크를 만들어 디스크 공간을 절약하는 대신 "ln -s"를 사용할 수도 있습니다.

CSVFILE=$1 

    cat $CSVFILE |\ 
    while read LINE; do 
     SPLIT=`echo $LINE | tr "," " "` 
     FIRST=0 
     for NAME in $SPLIT; do 
      if [ $FIRST -eq 0 ]; then 
       SRCNAME=$NAME 
      else 
       DSTNAME=$NAME 
       cp ${SRCNAME}.jpg ${DSTNAME}.jpg 
      fi 
      ((FIRST++)) 
     done 
    done 
+0

답장을 보내 주셔서 감사합니다. 내 그림의 이름이 실제로 IMG_1234.JPG인데도 스크립트가 작동하는 것 같습니다. 한 가지만 더 도와 주면 될지 궁금해서. 내 CSV 파일의 첫 번째 열에 실제로 포함 된 디렉터리 (내 질문 편집 참조) 및 디렉터리 이름 간격을 작동하도록 가져올 수 없습니다. 미리 감사드립니다. – Dasha

+0

실제로는 신경 쓰지 마라. _을 사용하여 모든 공백을 대체하고 작동해야합니다. – Dasha