대용량 파일을 제자리에서 편집하는 방법은 무엇입니까?

대용량 파일을 제자리에서 편집하는 방법은 무엇입니까?

여러 개의 파일이 있는데 각 파일 크기는 1GB를 초과합니다. 파일에서 마지막 몇 바이트를 제거해야 합니다. 어떻게 해야 합니까? 나는 디스크 공간을 절약하기 위해 파일을 편집하는 것을 선호합니다.

저는 HP-UX를 사용하고 있습니다.

답변1

파일 끝에서 2KB를 잘라냅니다.

truncate -s-2K file

답변2

사용해 보세요16진수 편집HP-UX에서는 시도하지 않았지만 작동할 것입니다. 파일의 특정 위치로 이동하여 잘라낼 수 있습니다. 나는 그것이 전체 파일을 읽지 않고 단지 표시할 적절한 위치를 찾는다고 확신합니다.

일단 실행하면 화살표 키를 사용하여 이동할 수 있어 사용이 매우 간단합니다. F1이 도움이 됩니다. Ctrl-G 파일 내 위치로 이동합니다. (팁: 끝으로 이동하려면 화면 하단에 있는 파일 크기를 사용하세요.) 잘라낼 첫 번째 바이트에 커서를 놓고 잘림이 완료되었는지 확인한 후 Esc T를 누릅니다. 종료하려면 Ctrl-x를 누르세요.

답변3

시스템 호출에 접근할 수 있는 도구를 사용하세요 truncate. POSIX 도구를 사용하면 간단히 이 작업을 수행할 수 있습니다. 경고, 이 명령 dd은 일반적인 UNIX 명령보다 오류에 더 강하므로 특히 주의하십시오 . 123456은 예약할 바이트 수입니다.

dd if=/dev/null of=/file/to/truncate seek=1 bs=123456

Perl 버전이 더 읽기 쉽습니다.

perl -e 'truncate "$ARGV[0]", 123456 or die $!' /file/to/truncate

답변4

split또는 ed임의 awk의 프로그래밍 언어를 사용할 수 있습니다 .

관련 정보