.zip 형식으로 제공되는 독점 패키지 파일이 있습니다. 이러한 파일의 내용은 항상 동일한 구조를 따릅니다.
루트 폴더에는 오디오 파일이 포함 된 폴더를 나열하는 XML 파일 (재생 목록)이 있습니다.
예:
<playlist>
<playlistversion>1.0</playlistversion>
<item>daudio\localaudio\Q2013\0989\0001\</item>
<item>daudio\localaudio\Q2013\0989\0002\</item>
<item>daudio\localaudio\Q2013\0989\0003\</item>
<item>daudio\localaudio\Q2013\0989\0004\</item>
<item>daudio\localaudio\Q2013\0989\0005\</item>
</playlist>
이러한 각 폴더에는 연속적으로 이름이 지정된 확장명을 사용하여 청크로 분할 된 오디오 파일이 포함되어 있습니다.
다음을 수행하는 스크립트를 작성해야합니다.
다음은 예제 파일입니다. http://cl.ly/aAwB
약간의 스크립트로 할 수 있습니다.
#!/bin/bash
[ ! -e $1 ] && exit 9 # Exit if file doesn't exists
unzip -p $1 $(basename $1 .zip)/*/*/*/*/*.a* >$(basename $1 .zip).mp3
노트:
[ ! -e $1 ]
는 zip 파일의 존재를 확인합니다.unzip -p
-p
파일을 파이프로 추출합니다 (stdout). 파일 데이터 만 stdout으로 전송되고 파일은 저장된 것처럼 항상 이진 형식으로 추출됩니다 (변환 없음).
basename
경로 의 첫 번째 는 __MACOSX/
추출 할 경로를 피하는 것입니다.>
이름은 같지만 mp3
확장자 가있는 새 파일로 리디렉션합니다 .Ps> 한 줄로만보고 싶다면 사용할 수 있습니다.
[ -e $1 ] && unzip -p $1 $(basename $1 .zip)/*/*/*/*/*.a* >$(basename $1 .zip).mp3
두 버전 모두 성공하면 코드 0으로 종료되고, 파일을 찾을 수 없으면 코드 9로 종료되거나, 압축 해제 종료 코드로 종료됩니다. 출력 파일이 있는지, 입력 파일이 zip 파일인지, 확장자가 .zip
... 인지 확인하기 위해 몇 가지 추가 컨트롤을 추가하는 것이 좋습니다 .
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다