2012-05-01 5 views
0

다른 스크립트를 실행하고 출력에서 ​​이름을 변경하는 스크립트를 만들려고합니다.쉘 스크립트의 이름 바꾸기

#! /bin/bash 

i=1 

for N in mediainput.iso mediainput2.iso 
do 
    x264transcode $N 
    mv $N $((i++)) 
done 

이 돈`t 아니라 : 여기

지금까지 스크립트입니다. 그냥 파일을 이동하고 이름을 바꿉니다.

먼저 x264 트랜 코드를 실행 한 다음 해당 출력의 이름을 바꿔야합니다. x264transcode가 파일을 처리 할 때 모두 동일한 이름을 얻습니다.

파일 이름이 바뀌는 okey는 1, 2 등입니다.

하지만 파일이 들어있는 폴더의 이름이나 파일 자체를 가져 오는 방법이있는 경우 더하기를 원합니다. 어쩌면 서로 다른 시나리오에 맞게 선택할 수 있습니다.

예 아래 :

  1. ~/비디오/여름 휴가 2009/dvd.iso
  2. x264에서
  3. 출력 : VIDEO01.mkv
  4. 이름 바꾸기 스크립트
  5. 출력 : 여름 - 휴가 - 2009.mkv
+0

이을 : 그렇다면,이 같은도 하이픈 올바른 파일 이름을 얻을 수 있습니다. 나를 위해 그럴듯한 소리하지 않습니다. 'mediainput.iso mediainput2.iso'에서 N은 mediainput.iso에 N의 이름을 설정하고 mediainput2.iso로 설정합니다. 그런 다음'x264transcode $ N'을 호출하면 첫 번째 변수 치환 후에 'bex264transcode mediainput.iso'가됩니다. 'mv $ N $ ((i ++))'는 입력 파일을 mv/rename 할 것입니다. 입력 파일 이름이 출력 파일 이름입니까? 그러나 모든 파일에 대해 동일한 이름이 아닙니다. 당신도 폴더에 대해 이야기하고 있습니다. 그러나'mediainput.iso'는 폴더 이름으로 보이지 않습니다. 내가 뭔가 잘못 됐어? –

답변

1

x264transcode는 항상 출력 VIDEO01.mkv를 호출합니까? 모든 비디오 파일은 dvd.iso입니까? 이 입력 파일이있는 디렉토리가 아닌 현재 디렉토리에 x264transcode 저장 VIDEO01.mkv를 가정 한 것입니다

cd ~/Videos 
for I in */dvd.iso 
do 
    x264transcode $I 
    mv VIDEO01.mkv `dirname $I|tr ' ' -`.mkv 
end 

+0

비디오 파일은 항상 .iso 또는 .img | 출력은 동적이지만 항상 .mkv로 끝납니다. x264transcode는 출력을 지정할 수있는 다른 폴더에 저장합니다. – MikalD