2012-06-22 2 views
2

저는 리눅스 스크립팅의 초보자이고 웹에서 가져 와서 수정하려고하는 스크립트에 문제가 있습니다.리눅스 스크립트 - 확장 유지

다음은 스크립트

#!/bin/bash 
if (($# ==0)) 
then 
    echo "Usage: flvto3gp [flv files] ..." 
    exit 
fi 

while (($# !=0)) 
do 
    ffmpeg -ss 00:00:10 -t 1 -s 400x300 -i $1 -f mjpeg /home/zavids/rawvids/thumbs/$1.jpg 
    shift 
done 
echo "Finished" 
echo "\"fakap all those nonsense!\"" 
echo "" 

그래서 비디오에서 스크린 샷을 잡아와 JPEG로 저장 해요입니다. 문제는 비디오 파일의 확장자가 유지되므로 완성 된 파일은 video.flv.jpg (예 :)입니다. 동영상 확장 프로그램을 제거하려면 어떻게해야합니까?

답변

2

변경 bash 파라미터 확장을 사용하여, 출력 파일의 이름을 생성하기 위해 사용하기 전에 입력 파일 확장자 스트립이

ffmpeg -ss 00:00:10 -t 1 -s 400x300 -i $1 -f mjpeg /home/zavids/rawvids/thumbs/${1%.*}.jpg 

이 줄

ffmpeg -ss 00:00:10 -t 1 -s 400x300 -i $1 -f mjpeg /home/zavids/rawvids/thumbs/$1.jpg 

.

+0

감사를 완벽하게 일 –

0

이 사용하려고 할 수 있습니다 : 그것은 $ 문자열의 뒷면에서 하위 문자열 $의 짧은 경기를 삭제

${string%substring} 

. 귀하의 경우를 들어

:

${1%.flv} 

이 코드는 첫 번째 인수의 끝에서 flv를 대체합니다.

당신은 여기에 너무 많은 세부 사항이있을 수 있습니다 http://tldp.org/LDP/abs/html/string-manipulation.html