리눅스에서 큰 파일을 쉽게 읽는 방법

거대한 로그 파일, 텍스트 파일 또는 데이터 세트를 살펴보시겠습니까? 당신만 그런 것이 아닙니다. 리눅스에서 큰 파일을 읽는 것은 시스템 리소스를 압도하지 않고 내용을 보고 관리하고 싶을 때 도전적일 수 있습니다. 그러나 less 명령어, Vim 또는 문서를 더 작은 조각으로 나누는 등의 여러 접근 방식을 사용하여 리눅스에서 큰 파일을 읽는 방법이 있습니다.
이 기사에서는 다양한 방법을 사용하여 리눅스에서 큰 파일을 읽거나 특정 정보를 찾는 방법을 배워 보겠습니다.
목차
- less 명령어 사용
- split 명령어로 파일 나누기
- 미드나잇 커맨더 사용
- Klogg 사용
- 텍스트 편집기로 큰 파일 읽기
- grep 명령어로 파일 검색하기
- head 및 tail 명령어 사용
less 명령어 사용
큰 텍스트 파일의 내용을 보거나 빠른 검색을 수행할 수 있는 가벼운 리눅스 도구를 찾고 계십니까? 더 이상 고민하지 마세요, less 명령어입니다.
저는 이 유틸리티를 좋아합니다. 일반 텍스트 편집기와 달리 전체 파일을 메모리에 로드하지 않고도 한 번에 한 페이지씩 파일을 볼 수 있게 해주기 때문입니다. 이는 특히 큰 파일에 대해 더 빠르며, 긴 문서나 로그를 쉽게 검토하는 데 도움이 됩니다.
사용하려면 less 다음에 파일 이름을 입력하십시오:
less filename.txt이 명령은 less 인터페이스를 열며, 화살표 키를 사용하여 한 줄씩 파일을 스크롤하거나 / 다음에 검색어를 눌러 특정 용어를 검색할 수 있습니다.
또한 less를 사용하여 파이프라인 연산자를 통해 다른 명령어의 출력을 읽을 수도 있습니다. 예를 들어, ls 명령어의 출력을 읽고 표시하려면 다음을 사용하십시오:
ls -l | less
게다가 less 명령어에는 동작을 조정할 수 있는 몇 가지 옵션이 있습니다. 이러한 옵션을 결합하여 less의 작동 방식을 세밀하게 조정할 수 있습니다.
예를 들어, 특정 패턴을 검색하려면 less와 함께 -p 옵션을 사용할 수 있습니다:
ls -l | less -p "sample"
이 명령은 출력을 열고 sample이라는 단어의 첫 번째 발생으로 이동합니다.
또한 -N 옵션을 사용하여 파일 내용과 함께 줄 번호를 표시할 수 있습니다:
ls -l | less -N
split 명령어로 파일 나누기
가끔 큰 파일을 더 작은 조각으로 나누는 것이 가장 좋은 접근 방식입니다. 특히 파일을 관리할 수 있는 섹션으로 처리하거나 읽고 싶을 때 말이죠. 예를 들어, 파일 크기가 1GB를 초과하거나 1억 줄이 넘을 때마다 파일을 조각으로 나눕니다.
파일은 크기 또는 줄 수에 따라 나눌 수 있습니다. 텍스트 작업 시 줄을 나누면 줄이나 단어가 절반으로 잘리는 것을 피할 수 있습니다.
예를 들어, 지정된 줄 수를 기준으로 파일을 나누려면 다음 명령어를 실행하십시오:
split -l 10000 samplefile.txt part_
이 예에서 “samplefile.txt” 파일은 각각 10,000줄을 포함하는 여러 파일로 나누어집니다. 결과 파일은 “part_aa”, “part_ab” 등으로 이름이 붙여집니다. 이제 파일의 작은 조각을 열어 메모리 사용이나 시스템 속도 저하에 대한 걱정 없이 읽을 수 있습니다.
100MB와 같은 크기를 기준으로 큰 파일을 나누고 싶다면 다음 명령어를 실행하십시오:
split -b 100M samplefile.txt part_미드나잇 커맨더 사용
미드나잇 커맨더(MC)는 디렉토리와 파일을 탐색하기 위한 직관적인 시각적 인터페이스를 제공하는 이중 패널 텍스트 기반 파일 관리자입니다.
MC는 인터페이스 내에서 파일을 직접 볼 수 있게 하여, 전체 파일을 메모리에 로드하지 않고도 거대한 로그나 데이터를 빠르게 스크롤할 수 있도록 해줍니다. MC에서 큰 파일을 스크롤하는 부드럽고 효율적인 방법이 마음에 듭니다.
MC를 설치하려면 다음 명령어를 실행하십시오:
sudo apt install mc터미널에서 mc를 실행하여 시작할 수 있습니다. 내부에 들어가면 읽으려는 큰 파일로 탐색하고 그 내용을 볼 수 있습니다.

Klogg 사용
Klogg는 대용량 파일을 문제 없이 처리할 수 있는 빠른 오픈 소스 GUI 기반 로그 뷰어입니다. 다른 편집기와 달리, Klogg는 전체 파일을 메모리에 로드하지 않고 필요한 부분만 읽어 메모리 사용량을 줄입니다.
Klogg는 또한 실시간 필터링 및 검색 기능을 제공하여 과도한 스크롤 없이 찾고 있는 내용을 쉽게 찾을 수 있습니다.
Klogg를 설치하기 전에 먼저 “/etc/apt/keyrings” 디렉토리를 생성하고 그곳에 GPG 키를 추가해야 합니다. GPG 키는 Klogg 패키지 리포지토리를 검증하는 데 필요합니다.
디렉토리를 생성하려면 다음 명령어를 실행하십시오:
sudo mkdir -p /etc/apt/keyrings이제 GPG 키를 추가하십시오:
curl -sS https://klogg.filimonov.dev/klogg.gpg.key | gpg --dearmor | sudo tee /etc/apt/keyrings/klogg.gpg다음으로, curl 명령어를 사용하여 Klogg 리포지토리를 시스템에 추가해야 합니다:
curl -sS https://klogg.filimonov.dev/deb/klogg.jammy.list | sudo tee /etc/apt/sources.list.d/klogg.list패키지 목록을 업데이트하십시오:
sudo apt update마지막으로, 다음 명령어로 Klogg를 설치할 수 있습니다:
sudo apt install klogg
설치가 완료되면, 인터페이스를 통해 파일을 열고 내장된 기능을 사용하여 내용을 검색하고 탐색할 수 있습니다.

텍스트 편집기로 큰 파일 읽기
대부분의 텍스트 편집기는 큰 파일을 처리하는 데 어려움을 겪지만, Vim 또는 Emacs와 같은 편집기는 Nano 또는 Gedit와 같은 표준 편집기보다 큰 파일을 더 잘 처리합니다.
예를 들어, Vim은 파일을 빠르게 이동하고 특정 용어를 검색할 수 있는 기능을 제공하며, 전체 내용을 한 번에 메모리에 로드하지 않습니다. 그러나 검색은 이미 로드된 부분으로 제한됩니다.
Vim에서 파일을 열려면 다음을 실행하십시오:
vim samplefile.txt참고: Vim은 큰 파일을 더 효과적으로 관리할 수 있지만, 여전히 가장 빠른 도구는 아닙니다. 빠른 미리 보기를 원할 때는 일반적으로 less 명령어 또는 앞서 언급한 전문 도구를 사용하는 것이 더 효율적입니다.
grep 명령어로 파일 검색하기
큰 파일에서 특정 정보를 찾으려는 목적이라면 grep 명령어를 사용해 보세요. 이 명령은 파일을 검색하여 검색 쿼리에 일치하는 줄만 출력합니다.
명령어 출력을 less로 파이프할 때, 이는 일시적입니다. less를 닫으면 출력이 사라집니다. 나중을 위해 출력을 유지하고 싶다면, 파일로 리다이렉트하고 less와 같은 명령줄 도구로 열 수 있습니다.
예를 들어, 큰 파일에서 “ERROR”라는 단어가 포함된 모든 줄을 인쇄하려면 다음을 실행합니다:
grep "Error" samplefile.txt대소문자 구분을 무시하는(grep -i)거나 전체 단어만 검색하는(grep -w) 등 추가 옵션으로 검색을 세부 조정할 수 있습니다.
출력을 파일로 리다이렉트하기
나중에 특정 정보를 저장하고 싶다면, 명령어의 출력을 새 파일로 리다이렉트할 수 있습니다.
예를 들어, grep 명령어를 사용하여 줄을 검색하고 이를 새 파일에 저장할 수 있습니다:
grep "Error" samplefile.txt > errors.log> 연산자는 새 파일을 만들거나 매번 덮어씁니다. 그러나 이미 존재하는 파일에 데이터를 추가하고 싶다면, > 대신 >> 연산자를 사용하십시오.
head 및 tail 명령어 사용
때로는 리눅스에서 큰 파일을 작업할 때 파일의 시작 부분이나 끝 부분만 보고 싶을 수 있습니다. 이를 위해 head 또는 tail 명령어를 사용할 수 있습니다.
파일의 처음 20줄을 표시하려면 다음을 입력하십시오:
head -n 20 samplefile.txt
유사하게, 마지막 20줄을 보려면 다음을 실행하십시오:
tail -n 20 samplefile.txt두 경우 모두 -n 20은 처음 또는 마지막 20줄만 보고 싶다는 것을 지정합니다. 필요에 따라 이 숫자를 조정하여 더 많은 또는 적은 줄을 표시할 수 있습니다. 기본적으로 두 명령어 모두 10줄을 표시합니다.
특정 파일 섹션을 탐색하기 위해 tail과 head를 결합할 수도 있습니다. 예를 들어, 100줄 파일에서 10-14줄을 보려면 시작 줄에서 총 줄 수(100)에서 시작 줄 마이너스 1을 빼서 시작 줄을 계산합니다 (100 - 9 = 91). 그런 다음 이 명령어를 사용하세요:
tail -n 91 samplefile.txt | head -n 5이것은 10-14줄을 표시합니다. less를 사용하여 확인한 결과와 비교하여 출력을 확인할 수 있습니다.
로그 파일과 같이 지속적으로 업데이트되는 파일을 모니터링하는 경우, tail -f를 사용하여 실시간으로 변경 사항을 따를 수 있습니다.
마무리
로그를 살펴보건, 데이터 세트에서 작업을 하건, 큰 텍스트 파일을 보건, 이러한 방법을 통해 프로세스를 간단하고 효율적으로 만들 수 있습니다. 리눅스에서 큰 파일을 찾는 방법과 이를 터미널의 다른 위치로 전송하는 방법도 배울 수 있습니다.
이미지 크레딧: Unsplash. 모든 변경 및 스크린샷은 Haroon Javed의 작업입니다.