저는 홈 비디오 용 .tbn 파일을 생성하기위한 스크립트 작업을하고 있습니다. 스크립트를 실행하면 다른 모든 파일 만 처리하는 것처럼 보입니다.다른 모든 파일을 처리하는 Bash 루프 만
#!/bin/bash
find ~/Movies/Home\ Movies/Canada\ Trip -type f | egrep '\.mp4$|\.avi$|\.mkv$' | while read file ; do
if [ ! -f "${file:0:${#file}-3}tbn" ]; then
# .tbn not found
echo "$file"
ffmpeg -itsoffset -13 -i "$file" -vcodec mjpeg -vframes 1 -s 400x224 -an -f rawvideo "${file:0:${#file}-3}tbn"
fi
done
그리고 여기 내 데이터 집합은 다음과 같습니다
Canada.Trip.S01E01.avi
Canada.Trip.S01E02.avi
Canada.Trip.S01E03.avi
Canada.Trip.S01E04.avi
Canada.Trip.S01E05.avi
Canada.Trip.S01E06.avi
Canada.Trip.S01E07.avi
Canada.Trip.S01E08.avi
Canada.Trip.S01E09.avi
Canada.Trip.S01E10.avi
Canada.Trip.S01E11.avi
Canada.Trip.S01E12.avi
Canada.Trip.S01E13.avi
Canada.Trip.S01E14.mp4
Canada.Trip.S01E15.mp4
Canada.Trip.S01E16.mp4
Canada.Trip.S01E17.mp4
Canada.Trip.S01E18.avi
Canada.Trip.S01E19.mkv
Canada.Trip.S01E20.mp4
그래서 내가 그것을 처음 실행할 때, 그것은 1,3,5,7 등을 위해 TBN 년대를 생성 .. 짝수 파일은 vies/Canada Trip/Canada.Trip.S01E16.mp4: No such file or directory
실패 (파일 이름의 잘림 시작 부분을 참고하십시오)
스크립트를 다시 실행하면 짝수 번째 파일 인 .tbn 파일이 생성됩니다. 전 Bash를 사용 해본 적이 없기 때문에 전체 상황이 혼란 스럽습니다!
스크립트가 제대로 작동합니다. 출력을 게시 할 수 있습니다 : find ~/Movies/Home \ Movies/Canada \ Trip-type f | egrep '\ .mp4 $ | \ .avi $ | \ .mkv $' – Jerome
'egrep'을 사용할 필요가 없습니다 : find ~/Movies/Home \ Movies/Canada \ Trip -type f \ ('*. mp4 '-o'* .avi '-o'* .mkv '\)'또는'find ~/Movies/Home \ Movies/Canada \ Trip -t f -regex '. * \. \ (mp4 \ | avi \ | mkv \) '' –