저는 44GB(예, 44개)의 .ape
CD 파일 폴더를 가지고 있습니다. 각각 .ape
은 완전한 CD이며 일반적 .cue
으로 각 .ape
. 통과할 큐 데이터가 없기 때문에 변환해야 하지만 분할해서는 안 됩니다. 거기에는 내가 신경쓰지 않는 .jpg
s와 s 도 있습니다 . 명령 출력이 이를 시각화하는 데 도움이 .log
된다면 tree
다음과 같이 하세요.
├── Philips Mozart Collection - 180 CD
│ │ ├── box01-Symphonies
│ │ │ ├── 1B.jpg
│ │ │ ├── 1F.jpg
│ │ │ ├── cd01
│ │ │ │ ├── CDImage.ape
│ │ │ │ ├── CDImage.ape.cue
│ │ │ │ ├── Complete Mozart Edition, Vol. 01, Early Symphonies (Disc 1) - Neville Mariner, Academy of St. Martin in the Fields.log
│ │ │ │ ├── img421.jpg
│ │ │ │ └── img422.jpg
│ │ │ ├── cd02
│ │ │ │ └── CDImage.ape
│ │ │ ├── cd03
│ │ │ │ ├── CDImage.ape
│ │ │ │ ├── CDImage.ape.cue
│ │ │ │ ├── Complete Mozart Edition, Vol. 01, Early Symphonies (Disc 2) - Sir Neville Marinner - Acadamy of St Martin in the Fields.log
│ │ │ │ ├── img426.jpg
│ │ │ │ └── img427.jpg
│ │ │ ├── cd04
등등... 180 CDS까지요.
.ape
기본적으로 모든 파일을 여러 .flac
파일로 분할하고 에서 태그 정보를 복사하여 .cue
디렉터리 구조를 유지하고 싶습니다 (바람직하게는 완전히 새롭고 다른 디렉터리에 있음). 가능하다면 스크립트보다 한 줄 명령을 선호합니다. 이 문제를 어떻게 해결할까요? 이 작업을 수행하는 방법을 아는 사람에게 감사합니다!
그리고 누군가가 이 질문을 여기에 있는 질문과 중복된 것으로 표시하기 전에: 모든 .ape 파일을 다른 하위 폴더의 .flac로 변환, 해당 사용자가 .ape를 여러 개의 .flacs로 분할할 필요가 없다는 점을 지적하고 싶습니다.
답변1
이 작업은 거의 수행하지 않기 때문에 여러 단계로 수행하겠습니다. 여기서는 자동화보다 투명성이 더 중요합니다. 그러나 한 줄도 가능합니다. 각 단계마다 모든 파일에 대해 하나의 명령만 사용한다면 이것이 의도한 것이라고 가정합니다.
ffmpeg
(또는 avconv
)이 있어야 하며 shntool
설치 되어 있어야 합니다 cuetools
.
.ape
모든 것을 제자리 로 변환하려면 다음을 수행 .flac
하십시오.
find . -name "*.ape" -exec sh -c 'exec ffmpeg -i "$1" "${1%.ape}.flac"' _ {} \;
APE 파일용 패치된 MAC 인코더 및 디코더를 다음에서 설치하는 경우 http://shnutils.freeshell.org/shntool/, 이 첫 번째 단계는 불필요합니다. 하지만 당신은 당신 자신 g++
과 함께 컴파일해야 할 것입니다 yasm
. .tta
대신에 자주 사용되는 파일도 마찬가지입니다 .ape
.
나뉘다그리고 이름 .flac
파일:
find . -name "*.cue" -exec sh -c 'exec shnsplit -f "$1" -o flac -t "%n_%p-%t" "${1%.cue}.flac"' _ {} \;
shnsplit
변환에도 사용되는 경우 .flac
in 을 "${1%.cue}.flac"
변환하려는 형식의 확장자로 바꾸세요.
%n
- 트랙 번호%p
– 출연자%t
– 트랙 이름
.cue
파일 이름 은 파일 에서 가져옵니다 .flac
. 결과 분할 .flac
파일에 태그를 지정하려면:
find . -name "*.cue" -execdir sh -c 'exec cuetag "$1" *.flac' _ {} \;
여유 시간에 나머지 CDImage.ape.cue
, CDImage.flac
및 파일을 제거하십시오. CDImage.ape
이름은 고유하므로 모차르트가 내가 알지 못하는 find . -name "CDImage*" -delete
작곡을 시작하는 경우를 제외하고는 단순한 것만으로도 충분합니다 .CDImage
작동 하려면 shnsplit
파일을 읽고 쓸 수 있도록 필요한 모든 인코더/디코더를 설치해야 합니다. APE(및 TTA 형식)용 모듈은 소스에서 컴파일해야 하며, 다른 모듈은 패키지(예: FLAC)를 설치하여 컴파일해야 합니다.
이는 확장자를 제외하고 .cue
및 .tta
/ .flac
/ 파일의 이름 이 동일한 모든 표준 사례에 적용됩니다 ..ape
다른 사람을 위한 부수적 발언: 이 변환을 처리하는 경우 원본 파일은 APE 및 TTA가 다른 곳보다 더 많이 사용되는 일본 원본일 수 있습니다. .cue
파일이 처음에 SHIFT-JIS로 코딩되었고 이제 UTF-8로 열린 경우 shnsplit
단계는 다음 과 같습니다.깨질 것이다. .cue
파일 이름을 바꿔야합니다
find . -name "*.cue" -exec rename 's/\.cue$/.cux/' -- {} +
다음을 사용하여 중간 파일을 UTF-8로 변환합니다.
find . -name "*.cux" -exec sh -c 'exec iconv -f SHIFT-JIS -t UTF-8 -o "${1%.cux}.cue" -- "$1"' _ {} \;
위의 단계를 수행하기 전에. .cux
다음 작업이 끝나면 파일을 제거하는 것을 잊지 마십시오 .
find . -name "*.cux" -delete