.mkv 파일이 많이 있습니다.
nightmare1.mkv
nightmare2.mkv
nightmare3.mkv
...
Ubuntu 터미널에서 mkvmerge를 사용하여하나의이 명령으로 파일을 작성하세요
mkvmerge --split 1G --compression 0:none --compression 1:none --clusters-in-meta-seek -o "nightmare1.mkv" "nightmare1.mkv"
첫 번째 악몽이 출력되고 두 번째가 입력됩니다.
나는 이 파일을 얻는다
nightmare1-001.mkv
nightmare1-002.mkv
...
어떻게 헤어질 수 있는지 이해하려고 노력해요모두.mkv 파일을 1GB 단위로 가져오고 싶기 때문에
nightmare1-001.mkv
nightmare1-002.mkv
...
nightmare2-001.mkv
nightmare2-002.mkv
...
nightmare3-001.mkv
nightmare3-002.mkv
...
모든 악몽 영화는 같은 폴더에 있습니다.
명령을 어떻게 다시 작성해야 합니까? 문제는 입력으로 단일 mkv 파일이 있고 파일에 출력으로 쓰지만 폴더 경로를 mkv 파일이 있는 입력으로 설정하고 폴더 안에 새로 분할된 모든 mkv 파일을 쓰고 싶다는 것입니다.
답변1
Bash for
루프를 사용하여 이 작업을 해결할 수 있습니다.
for file in ./source/*mkv; \
do \
echo mkvmerge --split 1G --compression 0:none --compression 1:none \
--clusters-in-meta-seek -o "./split/$(basename "$file")" "$file"; \
done
- 터미널의 모든 줄을 복사하여 붙여넣고 단일 명령으로 실행합니다.
- 루프의 테스트 실행 출력이 만족스러우면
echo
명령 을 제거하다실제 작업을 수행합니다.
위의 예에는 ./source/
원본 파일이 저장된 디렉터리에 대한 상대 경로가 있습니다. 각각은 ./split/
대상 경로이며 예비 상자에 넣어야 합니다.
각 반복마다 변수 값은 $file
다음과 같습니다 ./source/nightmare-i.mkv
. 명령 대체는 $(basename "$file")
경로 없이 파일 이름만 반환하므로 nightmare-i.mkv
출력 옵션의 값은 다음과 같습니다 ./split/nightmare-i.mkv
.