2012-08-02 1 views
4

파일을 결합합니다. 나는 데이터 손실없이 유닉스의 한 dat.gz file에 위의 다섯 dat.gz files을 통합 할 수있는 방법 게있을내가 명령 프롬프트에서 <code>ls -lt</code> 작업을 수행 할 때 현재 내가이 디렉토리 -</p> <pre><code>/data/real/test </code></pre> <p>에서 오전 한

REALTIME_235000.dat.gz 
REALTIME_234800.dat.gz 
REALTIME_234600.dat.gz 
REALTIME_234400.dat.gz 
REALTIME_234200.dat.gz 

아래와 같이 얻을. 나는 Unix에 익숙하지 않고 이것에 대해 확신하지 못한다. 아무도 이것에 나를 도울 수 있습니까?

업데이트 : -

그때 하나에 결합 내가 다섯 개 파일의 각 압축을 해제할지 여부를 가장 좋은 방법은 확실하지 않다? 또는 모두 five dat.gz을 하나로 합치면 dat.gz?

+1

파일 순서가 중요합니까? –

+0

예. 중요합니다. – AKIWEB

답변

10

이 파일을 임의의 순서로 내용을 연결 확인의 경우, 다음 명령은 트릭을 할 것입니다 :

zcat REALTIME*.dat.gz | gzip > out.dat.gz 

업데이트

이 해결해야 주문 문제 :

zcat $(ls -t REALTIME*.dat.gz) | gzip > out.dat.gz 
+0

난 무작위로하고 싶지 않아. 같은 순서 여야합니다 .. – AKIWEB

+0

'zcat * .gz | gzip> out.dat.gz' 이런 식으로 시도했습니다. 그리고이 오류는'REALTIME_EXPORT_v1x0_20120801_9_T_234000_234200.dat.gz.Z : No files or directories '입니다. 왜 그래야만하지? – AKIWEB

+0

@ Nevzz03이 문제를 재현 할 수 없습니다. 나는 리눅스와 같은 파일 이름에 ** bash **를 사용하고있다. –

5

을 결과를 gunzip 할 때 당신은 무엇을하고 싶습니까? 5 개의 파일을 다시 표시하려면 gzip (.gz) 형식이 아닌 다른 파일을 사용해야합니다. tar (.tar.gz) 또는 zip (.zip)을 사용해야합니다.

gunzip의 결과를 원래 파일의 gunzip으로 연결하려면 파일을 함께 cat (zcat 또는 gzcat하지 않음)하면됩니다. gunzip은 그 파일을 하나의 파일로 압축 해제합니다. 이어서

cat [files in whatever order you like] > combined.gz 

:

gunzip combined.gz 

원본 파일 풀어서의 연결 인 출력을 생성한다.

모두 압축을 풀고 하나의 스트림으로 다시 압축하라는 제안은 완전히 필요하지 않습니다.