멀티 기가 바이트 텍스트 파일을 편집하는 방법은 무엇입니까? Vim이 작동하지 않습니다 = ([닫힘]
한 번에 작은 부분 만 메모리에로드하여 멀티 기가 바이트 텍스트 파일을 편집 할 수있는 편집기가 있습니까? Vim이 처리 할 수없는 것 같습니다 = (
당신이 * nix에서 스크립트에있는 (그리고 거의) 전용 파일의 일부 (그리고 수정해야 가정) 경우합니다 (사용하여 파일을 분할 할 수 split
개별적으로 편집해야합니다 (사용 명령) awk
, sed
또는 비슷한)하고 후에을 연결 완료되었습니다.
cat file2 file3 >> file1
Ctrl-C는 파일로드를 중지합니다. 파일이 충분히 작 으면 모든 내용을로드하고로드 후 단계를 종료 한 것이 운이 좋았을 수 있습니다. 이 팁을 사용할 때 전체 파일이로드되었는지 확인하십시오.
Vim은 대용량 파일을 매우 잘 처리 할 수 있습니다. 3.4GB 파일을 편집하고 줄을 삭제하는 등의 작업을 수행했습니다. 명심해야 할 세 가지 사항 :
- Ctrl-C를 누르십시오. Vim은 처음에 전체 파일을 읽고, 구문 강조 표시 및 파일의 줄 수 등과 같은 작업을 수행합니다. Ctrl-C는이 열거 (및 구문 강조 표시)를 취소하고 다음 항목 만로드합니다. 화면에 표시하는 데 필요합니다.
- 읽기 전용 : Vim은 파일이 너무 커서. 편집을 수행 할 파일 복사. 나는 w했다! 파일을 저장하는 데 가장 많은 시간이 소요되었습니다.
- 줄로 이동 : 입력
:115355
하면 115355 줄로 바로 이동합니다.이 줄 은 대용량 파일에서 훨씬 더 빠릅니다. Vim은 줄 버퍼를로드 할 때마다 처음부터 스캔을 시작하는 것으로 보이며 파일을 스캔하기 위해 Ctrl-F를 누르고 있으면 끝 부분에서 정말 느려진 것 같습니다.
참고-Ctrl-C를 눌러 Vim 인스턴스가 읽기 전용 인 경우 Vim이 전체 파일을 버퍼에로드하지 않았을 수 있습니다. 이 경우 저장하면 전체 파일이 아닌 버퍼에있는 내용 만 저장됩니다 . G
파일의 모든 행이 있는지 확인하기 위해 끝으로 건너 뛰기 위해 빠르게 확인할 수 있습니다 .
질식을 일으키는 플러그인 일 수 있습니다. (구문 강조, 접기 등)
플러그인없이 vim을 실행할 수 있습니다.
vim -u "NONE" hugefile.log
미니멀하지만 적어도 익숙한 vi 동작을 제공합니다.
syntax off
또 다른 명백한 것입니다. 설치를 정리하고 필요한 것을 소싱하십시오. 그것이 무엇을 할 수 있는지 그리고 다른 수단을 통해 작업을 수행해야하는지 알아낼 것입니다.
split + vim 솔루션을 사용하여 @Al pachio가 제공 한 답변에 약간의 개선 사항이 있습니다. 파일 청크를 버퍼로 효과적으로 사용하여 glob으로 파일을 읽을 수 있습니다.
$ split -l 5000 myBigFile
xaa
xab
xac
...
$ vim xa*
#edit the files
:nw #skip forward and write
:n! #skip forward and don't save
:Nw #skip back and write
:N! #skip back and don't save
대용량 파일을로드 할 때 속도를 위해 특정 vim 기능을 비활성화 하는이 VIM 플러그인 을 확인하는 것이 좋습니다.
SQL 덤프를 약간 변경해야 할 때 주로 약 1GB의 파일을 사용하여 그렇게하려고했습니다. 나는 Windows를 사용하고 있으므로 큰 고통을 겪습니다. 심각하게 어렵습니다.
분명한 질문은 "왜 필요합니까?"입니다. 내가 두 번 이상이 더 시도 할 필요가 경험에서 말할 수 있습니다, 당신은 아마 정말 다른 방법을 찾으려고합니다.
그래서 어떻게하나요? 내가 한 몇 가지 방법이 있습니다. 때로는 vim 또는 nano를 사용하여 파일을 열 수 있으며 사용할 수 있습니다. 정말 힘든 고통이지만 효과가 있습니다.
그것이 작동하지 않으면 (귀하의 경우처럼) 몇 가지 옵션 만 있습니다. 필요한 변경 (예 : 검색 및 바꾸기)을 수행하는 작은 프로그램을 작성할 수 있습니다. 이를 수행 할 수있는 명령 줄 프로그램을 사용할 수 있습니다 (아마도 sed / awk / grep / etc로 수행 할 수 있습니까?).
작동하지 않는 경우 파일을 청크로 분할 한 다음 ( 분할 이 당연한 선택이지만 헤드 / 테일을 사용하여 원하는 부분을 얻을 수 있음) 필요한 부분을 편집 할 수 있습니다. 나중에 재결합합니다.
그래도 나를 믿고 다른 방법을 찾으십시오.
16 진 편집기가 대용량 파일을 처리하는 것이 합리적으로 일반적이라고 생각합니다. Windows에서는 최대 8EB (80 억 기가 바이트)의 파일을 처리한다고 주장 하는 HxD 를 사용합니다.
저는 Charles Campbell 의 LargeFile 플러그인 과 함께 Win7 x64에서 vim 7.3.3을 사용하여 멀티 기가 바이트의 일반 텍스트 파일을 처리하고 있습니다. 정말 잘 작동합니다.
당신이 바로 오길 바랍니다.
와우, 1GB 또는 2GB로도 vim이 질식하지 못했습니다. UltraEdit (Windows) 및 BBEdit (Mac)이 훨씬 더 큰 파일에 더 적합하다고 들었지만 개인적인 경험은 없습니다.
과거에는 http://csved.sjfrancke.nl/ 이 도구를 사용하여 3 기가 바이트 파일을 열었습니다 .
개인적으로 저는 UltraEdit를 좋아 합니다. 다음은 큰 파일에 대한 작은 설명 입니다.
I've used FAR Commander's built-in editor/viewer for super-large log files.
I have used TextPad for large log files it doesn't have an upper limit.
The only thing I've been able to use for something like that is my favorite Mac hex editor, 0XED. However, that was with files that I considered large at tens of megabytes. I'm not sure how far it will go. I'm pretty sure it only loads parts of the file into memory at once, though.
In the past I've successfully used a split/edit/join approach when files get very large. For this to work you have to know about where the to-be-edited text is, in the original file.
참고URL : https://stackoverflow.com/questions/908575/how-to-edit-multi-gigabyte-text-files-vim-doesnt-work
'Programming' 카테고리의 다른 글
지리적 URI 인 텐트로 시작된지도에 마커를 표시하려면 어떻게하나요? (0) | 2020.08.10 |
---|---|
초점에 주황색 윤곽선 강조 표시 비활성화 (0) | 2020.08.10 |
데이터가로드 된 후 scrollview가 webview로 스크롤되는 것을 방지하는 방법은 무엇입니까? (0) | 2020.08.10 |
AngularJS의 ng-src에 대한 이미지로드 이벤트 (0) | 2020.08.10 |
설치 후 카르마를 실행하면 '카르마'가 내부 또는 외부 명령으로 인식되지 않습니다. (0) | 2020.08.10 |