2014-06-18 2 views
0

맥을 사용하고 있습니다 .I 여러 개의 폴더에 png 이미지가 있습니다.목록에서 osx의 파일 이름 바꾸기

원본 파일 이름 (이미지)과 이름을 바꾸려는 이름의 목록도 있습니다.

그 중 어떤 스크립트로도 도움이 될 수 있습니까?

내가이

"크렘 브륄 운모", "E2DBCF 같은 CSV로 목록을 가지고 (내가 겪은 모든 방법은 패턴 매칭 기반하고이 목록을 사용하여 이름 변경에 대해 아무것도 언급하지 않을 수 있습니다) 이 .Like 난 파일의 수백 "크렘 브륄 Mica.png"

이전 이름은 ""새 이름이 있어야한다 "E2DBCF.png

+0

파일의 일부 줄을 말씀해 주시겠습니까? – Mortezaipo

+0

ok 질문을 편집하겠습니다. – humblePilgrim

+0

질문을 편집했습니다. – humblePilgrim

답변

0
sed -e "s/^\"\([^\"]*\)\",\"\([^\"]*\)\"$/mv '\1' '\2'/" | sh 

... 당신이하지 않아도 제공 줄 바꿈 또는 작은 따옴표 나 큰 따옴표 파일 이름.

시험하려면 | sh을 꺼내십시오.

+0

좋아, 시도 할 것이다 ... 내 파일 이름에 공백이있다. btw – humblePilgrim

+0

''sed'는 순전히 줄이 아닌 데이터에 잘 대처하지 않기 때문에 공백은 괜찮다. (이스케이프해야하기 때문에) 따옴표는 사용하지 않아도된다. 지향성, 상당한 추가 노력없이). – tripleee

0

을보십시오 : 나는 new_name 변수 old_name에서 첫 번째 값과 두 번째 값을 저장하는 구분 기호를 추가

#!/bin/bash 
renamed=0 
failed=0 
while IFS=',' read old_name new_name; do 
    old_name=`echo ${old_name}.png | sed 's/\"//g'` 
    new_name=`echo ${new_name}.png | sed 's/\"//g'` 
    if [ -e "$new_name" ]; then 
     mv "$new_name" "$old_name" 
     #echo "$new_name renamed to $old_name" 
     renamed=$[$renamed+1] 
    else 
     #echo "$new_name not found!" 
     failed=$[$failed+1] 
    fi 
done < "myfile" 
echo "success renamed: $renamed" 
echo "failed rename: $failed" 

IFS 통해. sed 명령을 통해 "을 none 값으로 바꿨습니다. 파일이 존재하면 파일 존재 여부를 확인한 후 mv 명령을 new_name에서 old_name으로 바꿉니다. 결국에는 successfailed 수를 알려줍니다.

참고 : 파일 이름에 디렉토리 주소를 추가하는 경우를 제외하고는 현재 디렉토리에서 작동합니다.

+0

나는 이걸 처음 들었다. 일을 설명 할 수 있니? – humblePilgrim

+0

@MithunMadhav 죄송합니다. 게시물을 업데이트했습니다. 확인해 봐. 참고 : 나는 리눅스 플랫폼에서 그것을 시도했다. 그것이 당신을 위해 잘 작동하기를 바랍니다. – Mortezaipo

+0

@MithunMadhav 당신은'myfile'을 파일 이름으로 변경해야합니다. – Mortezaipo