큰 파일을 작은 부분으로 나누는 방법?


189

큰 파일이 있습니다 (예 : 8GB). 어떻게 여러 부분으로 나눌 수 있고 3 개의 동일한 부분을 말한 다음 나중에 어떻게 통합합니까?


이 중 중복 될 것으로 보인다 askubuntu.com/questions/12172/...
조 - Erlend Schinstad

"이것 같습니다"라고 확신하십니까?. 도대체 똑같은 것입니다. 여기를 제외하고는 "더 많은 예제와 대안"이 추가되었습니다.
루이스 알바라도

분할하려는 이유와 바이트 하위 문자열로 분할 하려는지 또는 오류 검사 또는 레이블링으로 묶을 수 있는지 여부에 대해 더 자세히 설명하면 도움이 될 수 있습니다. 이것이 작은 매체 나 네트워크 전송을 위해 사용된다면 par2 와 같은 것을 볼 것 입니다.
poolie


N으로 균등하게 분할하는 하나의 라이너 : (1.) 라인으로 분할 split --lines $ (($ (wc -l <$ {your_filename}) / $ {N})) $ {your_filename} (2.) 바이트 분할 --bytes $ (($ (wc -c <$ {your_filename}) / $ {N})) $ {your_filename}
Trevor Boyd Smith

답변:


272

이를 달성하는 방법에는 여러 가지가 있습니다. 기본부터 시작하겠습니다.

은 Using 분할고양이 명령을 :

이미지와 이미지가 너무 크다고 말합니다 (10MB). 내가하는 일은 :

split --bytes=1M /path/to/image/image.jpg /path/to/image/prefixForNewImagePieces

그리고 그것을 정리하기 위해 나는 고양이를 사용합니다 :

cat prefixFiles* > newimage.jpg

예를 들면 다음과 같습니다.

이미지가있는 폴더 안에 있다고 가정합니다.

split --bytes=1M myimage.jpg new

이미지가 images라는 디렉토리 안에있는 경우 다음을 수행 할 수도 있습니다.

split --bytes=1M images/myimage.jpg new

이미지가 / home / cyrex / images 디렉토리에있는 경우 다음을 수행 할 수 있습니다.

split --bytes=1M /home/cyrex/images/myimage.jpg new

(이 분할됩니다 위의 모든 경우에 myimage.jpg1메가바이트 조각에 새로운 단어 조각의 이름을 접두사. 그들과 같을 것이다 그래서 newaa, newab, newac, newad...)

당신은 분할하는 경우 텍스트 파일을 하고 당신이 할 수있는 선으로 그것을 분할 할 :

split -l 1000 book.txt new

텍스트 파일을 각각 1000 줄의 출력 파일로 분할합니다. 이것은 파일을 분리하는 또 다른 방법이며 주로 로그, SQL 덤프, CSV 파일 등과 같은 텍스트 파일에 사용됩니다.

그런 다음 병합합니다

cat new* > newimage.jpg

이것은 한 가지 방법입니다. 분할 된 조각의 크기를 변경할 수도 있습니다. 그냥 말하는 부분 변경 --bytes=1M--bytes=1K1킬로바이트 또는 1G 기가에 대한, 또는 같은 다른 번호 --bytes=4K4킬로바이트 조각에 대한을.

노틸러스 사용

다른 방법은 노틸러스 GUI의 압축 옵션입니다. 압축하려는 파일을 작은 메가 바이트 크기로 분할 할 수있는 옵션을 제공합니다. 간단하고 쉽습니다.

또 다른 방법은 7z를 사용하는 것입니다

ISO 이미지가 있다고 가정하면 다음과 같이 ubuntu.iso할 수 있습니다.

7z a -v5m -mx0 ubuntu.7z ubuntu.iso

에서 5MB 크기의 파일이 생성됩니다 ubuntu.iso. 는 -v5m볼륨의 크기가되므로 10, 12, 1, 3으로 변경하고, 또한 m이 킬로바이트 등 k로 변경 될 수있다; -mx0스위치 어떠한 압축을 사용하지 않는 데, 즉, 단지 데이터 부분으로 분할 -7- 우편 말한다.

그냥 추출하려면

7z x ubuntu.7z.001

이 방법으로 첫 번째 파일을 추출하면 7z는 다음 파일에서 순서대로 추출을 시작합니다. 당신은 또한 할 수 있습니다

7z e ubuntu.7z.001

여기에서도 같은 효과가 있습니다.


2
아직 오픈 소스가 아니기 때문에 rar를 포함하지 않았으며 (내가 아는 한) 분할을 수행하는 쉬운 방법을 찾고 있었기 때문에 Tar을 추가하지 않았습니다.
루이스 알바라도

gzip도 추가
-7zip

내가 아는 한, Gzip (tar와 같은)에는 압축 파일을 분할하는 쉬운 옵션이 없습니다. 모든 경우에 압축 파일을 "분할"하기 위해 split 명령을 사용하는 것을 보았습니다. 따라서 split 또는 7z와 같은 단일 목적으로 수행 할 수있는 단일 목적을 달성하는 것은 명령이 아니라 명령 그룹입니다. 7Zip (p7zip-full 패키지의 p7zip) 설치의 경우 iirc를 요구하지 않았습니다.
Luis Alvarado

텍스트 파일 분할을 추가했습니다. 그것에 대해 잊어 버렸고 오늘은 CSV 파일 두 개를 분할해야했습니다. 이것은 특정 라인 수 여야하는 덤프에 대한 것입니다.
Luis Alvarado

10

split -b적절한 숫자를 사용 하면 세 가지를 얻을 수 있습니다.

수는 다음과 같습니다.

size=$(wc -c <"file name")
one_third=$((size/3+1))

다시 조립하려면 고양이를 사용하십시오

cat "file name"* > "file name"

매뉴얼 페이지가 세부 사항을 채우는 데 도움이됩니다.


1
당신은 또한 사용할 수 split --number있도록 split당신을 위해 파일의 수를 계산 : askubuntu.com/questions/54579/...
치로 틸리新疆改造中心法轮功六四事件

4

스 플리트

파일을 분할하고 재결합하는 인기있는 프리웨어 프로그램입니다. 이 프로그램은 Windows, Linux 및 기타 다양한 플랫폼에서 사용할 수 있습니다.

Linux 용 HJSplit은 전체 그래픽 사용자 인터페이스가있는 Linux 용 프리웨어 파일 스플리터입니다. HJSplit은 100GB가 넘는 파일 크기, Split, Join / Recombine, MD5 체크섬, 파일 비교, "설치없이 실행"을 지원하며 프로그램은 완전히 이식 가능합니다.

Linux 용 HJSplit을 설치할 필요가 없으며 특별한 라이브러리에 의존하지 않습니다. hjsplitlx.tar.gz 아카이브를 선택한 디렉토리에 추출하고 Linux 파일 관리자 또는 터미널 창에서 프로그램을 시작하십시오. 프로그램의 파일 권한을 '실행 가능'으로 조정해야 할 수도 있습니다.

여기에 이미지 설명을 입력하십시오


1
Windows 파일이 Linux에서도 작동한다고 말해야합니다.
Uri Herrera

2
이와 같은 프로그램으로 이동하기 전에 파일을 분할 / 결합하는 방법에는 여러 가지가 있습니다. 오히려 리눅스가 제공하는 강력한 옵션을 사용하고 파일을 분할 / 병합하기 위해 매우 빠르고 안전한 방법이 있습니다.
루이스 알바라도

3
안전하고 빠르며 리눅스를 포함하는 크로스 플랫폼입니다. 리눅스에서도 실행되는 WINDOWS 전용 어플리케이션은 아닙니다.
Uri Herrera

2
저는 HJSplit을 사용합니다. 훌륭하고 간단합니다. 텍스트 상자에 매개 변수 값을 채울 수있을 때 명령 및 매개 변수 이름을 입력 할 필요가 없습니다.
Matthew 읽기

2
그리고 무료로 다운로드하면 더 나빠질까요? 그리고 OP OPHER에 무료 소프트웨어 (이것은 무료입니다)를 요구하고 당신이 말하는 것이 OPEN이라고 말해야합니다. 차이가 있습니까?.
Uri Herrera

4

그놈 분할? http://gnome-split.org/

그놈 분할은 파일을 분할하고 다시 병합 할 수있는 도구입니다. Java로 작성되었으며 GTK + 사용자 인터페이스를 사용합니다 (java-gnome 프로젝트 덕분에). 목표는 여러 파일 형식 (예 : Xtremsplit)을 처리 할 수있는 유사한 프로젝트의 기본 구현을 제공하는 것입니다.

http://www.omgubuntu.co.uk/2010/08/split-large-files-easily-in-ubuntu-with-gnome-split/


3

HOZ - Hacha 열기 Zource의 v1.65 - http://hoz.sourceforge.net/

여기에 이미지 설명을 입력하십시오

개발자로부터 :

OZ는 '파일 스플리터'라고 부르는 것입니다. 파일 형식은 스페인과 라틴 아메리카에서 잘 알려진 스플리터 인 'Hacha'소프트웨어에서 사용하는 형식과 동일합니다. HOZ는 'Hacha'호환 스플리터의 오픈 소스 및 휴대용 C 구현입니다.

HOZ는 'Hacha'보다 작고 빠릅니다.

btw, 나는 'hoz'가 스페인어에서 'sickle'이고 'hacha'가 'axe'에 대한 스페인어 단어이기 때문에 'Zource'에서 'Z'isntead를 'Sours'로 사용했습니다 ...

설치 후 ghoz터미널 에 드롭하여 Hoz GUI를 사용할 수 있습니다 . 작업은 매우 간단하여 설명이 필요하지 않지만 개발자 사이트에서 추가 정보를 얻을 수 있습니다.

행운을 빕니다!


0

나무꾼

Java로 개발 된 무료 파일 분할 및 병합 유틸리티. 사용자가 모든 유형의 파일을 KB, MB 또는 GB 단위로 더 작은 크기로 분할 할 수있는 작은 크기의 응용 프로그램입니다.

Linux는 물론 Windows에서도 사용할 수 있습니다.

WoodCutter는 원본 파일을 병합하는 3 가지 방법을 제공합니다. WoodCutter는 모든 파일을 다시 결합하기 위해 WoodCutter 응용 프로그램에서 처리 할 수있는 병합 파일을 만듭니다. 분할 파일의 수신기에 WoodCutter가 설치되어 있지 않은 경우 WoodCutter는 배치 파일과 셸 스크립트 파일을 만들어 파일을 다시 병합하므로 원본 파일도 얻을 수 있습니다. 배치 파일은 Windows 플랫폼에서 사용되며 셸 스크립트는 Linux 플랫폼에서 사용됩니다.

http://java-puzzle.blogspot.com/2009/07/woodcutter.html


2
라이센스는 "프리웨어"입니다. repos에있는 자유 소프트웨어 도구가 더 나은 솔루션이라고 생각합니다.
Broam

0

split --number

이는 불가분으로 인해 더 큰 마지막 파일을 제외하고 동일한 크기의 N 파일을 생성하는 좋은 옵션입니다. 예 :

printf '0123456789' > f.txt
split -d --number 2 f.txt f.txt.part.
tail f.txt.part.*

제공합니다 :

==> f.txt.part.00 <==
01234
==> f.txt.part.01 <==
56789

과:

split -d --number 3 f.txt f.txt.part.
tail f.txt.part.*

제공합니다 :

==> f.txt.part.00 <==
012
==> f.txt.part.01 <==
345
==> f.txt.part.02 <==
6789

https://askubuntu.com/a/54584/52975-b 에서 언급 된 + 명시 적 크기 계산과 비교할 때 마지막 파일은 이전 파일보다 거의 2 배 더 클 수 있으며 때로는이 옵션의 단점입니다. 그러나 크기 계산을 직접 수행 할 필요가 없으므로 여러 번 더 편리합니다.

https://stackoverflow.com/questions/2016894/how-to-split-a-large-text-file-into-smaller-files-with-equal-number-of-lines 에서 동일한 줄 수를 요청했습니다.

split2.28, 우분투 18.04 에서 테스트되었습니다 .

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.