bzip2는 파이프를 통해 텍스트 파일의 압축을 풀고 변경하고 압축합니다.

bzip2는 파이프를 통해 텍스트 파일의 압축을 풀고 변경하고 압축합니다.

bzip2 압축 텍스트 파일의 압축을 풀고 콘텐츠를 변경(새 콘텐츠 추가, 정렬 등)한 후 파이프로 다시 압축하는 방법을 찾고 있습니다.

이 작업을 수행할 수 있는 방법을 찾았지만 불행하게도 bzip2에서는 이 경우 동일한 파일 사용을 허용하지 않기 때문에 재압축된 출력으로 다른 파일을 사용해야 합니다.

이것은 내 코드입니다.

bzip2 -dc file.bz2 | sort | bzip2 -9 > file_2.bz2

동일한 파일을 사용하면 다음 오류가 발생합니다.

bzip2: Compressed file ends unexpectedly;
perhaps it is corrupted?  *Possible* reason follows.
bzip2: Success
Input file = file.bz2, output file = (stdout)

It is possible that the compressed file(s) have become corrupted.
You can use the -tvv option to test integrity of such files.

You can use the `bzip2recover' program to attempt to recover
data from undamaged sections of corrupted files.

내 문제에 대한 해결책이 있습니까?

미리 감사드립니다!

답변1

내 문제에 대한 해결책이 있습니까?

mv file_2.bz2 file.bz2

또는 사용 사례 와 같이 옵션 bunzip2대신 사용할 수 있습니다 .bzip2 -d-cbzip2

압축 요소가 파일마다 다르기 때문에 압축된 데이터를 제자리에 다시 쓰는 것은 까다롭습니다. 그러니 거기 가지 마세요.

귀하의 경우 sort어쨌든 전체 파일이 캐시됩니다. 따라서 원칙적으로는 쉬워야 하지만 실제로는 쉬운 방법이 없습니다.

관련 정보