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

리눅스에서 큰 파일 읽기 기능 이미지

거대한 로그 파일, 텍스트 파일 또는 데이터 세트를 살펴보시겠습니까? 당신만 그런 것이 아닙니다. 리눅스에서 큰 파일을 읽는 것은 시스템 리소스를 압도하지 않고 내용을 보고 관리하고 싶을 때 도전적일 수 있습니다. 그러나 less 명령어, Vim 또는 문서를 더 작은 조각으로 나누는 등의 여러 접근 방식을 사용하여 리눅스에서 큰 파일을 읽는 방법이 있습니다.

이 기사에서는 다양한 방법을 사용하여 리눅스에서 큰 파일을 읽거나 특정 정보를 찾는 방법을 배워 보겠습니다.

목차

  • less 명령어 사용
  • split 명령어로 파일 나누기
  • 미드나잇 커맨더 사용
  • Klogg 사용
  • 텍스트 편집기로 큰 파일 읽기
  • grep 명령어로 파일 검색하기
  • head 및 tail 명령어 사용

less 명령어 사용

큰 텍스트 파일의 내용을 보거나 빠른 검색을 수행할 수 있는 가벼운 리눅스 도구를 찾고 계십니까? 더 이상 고민하지 마세요, less 명령어입니다.

저는 이 유틸리티를 좋아합니다. 일반 텍스트 편집기와 달리 전체 파일을 메모리에 로드하지 않고도 한 번에 한 페이지씩 파일을 볼 수 있게 해주기 때문입니다. 이는 특히 큰 파일에 대해 더 빠르며, 긴 문서나 로그를 쉽게 검토하는 데 도움이 됩니다.

사용하려면 less 다음에 파일 이름을 입력하십시오:

less filename.txt

이 명령은 less 인터페이스를 열며, 화살표 키를 사용하여 한 줄씩 파일을 스크롤하거나 / 다음에 검색어를 눌러 특정 용어를 검색할 수 있습니다.

또한 less를 사용하여 파이프라인 연산자를 통해 다른 명령어의 출력을 읽을 수도 있습니다. 예를 들어, ls 명령어의 출력을 읽고 표시하려면 다음을 사용하십시오:

ls -l | less

터미널 창에서 ls 명령어 출력 읽기.

게다가 less 명령어에는 동작을 조정할 수 있는 몇 가지 옵션이 있습니다. 이러한 옵션을 결합하여 less의 작동 방식을 세밀하게 조정할 수 있습니다.

예를 들어, 특정 패턴을 검색하려면 less와 함께 -p 옵션을 사용할 수 있습니다:

ls -l | less -p "sample"

리눅스의 특정 파일에서 특정 패턴 찾기.

이 명령은 출력을 열고 sample이라는 단어의 첫 번째 발생으로 이동합니다.

또한 -N 옵션을 사용하여 파일 내용과 함께 줄 번호를 표시할 수 있습니다:

ls -l | less -N

less 인터페이스 유틸리티에서 출력 번호 매기기.

split 명령어로 파일 나누기

가끔 큰 파일을 더 작은 조각으로 나누는 것이 가장 좋은 접근 방식입니다. 특히 파일을 관리할 수 있는 섹션으로 처리하거나 읽고 싶을 때 말이죠. 예를 들어, 파일 크기가 1GB를 초과하거나 1억 줄이 넘을 때마다 파일을 조각으로 나눕니다.

파일은 크기 또는 줄 수에 따라 나눌 수 있습니다. 텍스트 작업 시 줄을 나누면 줄이나 단어가 절반으로 잘리는 것을 피할 수 있습니다.

예를 들어, 지정된 줄 수를 기준으로 파일을 나누려면 다음 명령어를 실행하십시오:

split -l 10000 samplefile.txt part_

split 명령어를 사용하여 파일을 더 작은 조각으로 나누기.

이 예에서 “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

우분투에 Klogg 설치하기.

설치가 완료되면, 인터페이스를 통해 파일을 열고 내장된 기능을 사용하여 내용을 검색하고 탐색할 수 있습니다.

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줄 표시하기.

유사하게, 마지막 20줄을 보려면 다음을 실행하십시오:

tail -n 20 samplefile.txt

두 경우 모두 -n 20은 처음 또는 마지막 20줄만 보고 싶다는 것을 지정합니다. 필요에 따라 이 숫자를 조정하여 더 많은 또는 적은 줄을 표시할 수 있습니다. 기본적으로 두 명령어 모두 10줄을 표시합니다.

특정 파일 섹션을 탐색하기 위해 tailhead를 결합할 수도 있습니다. 예를 들어, 100줄 파일에서 10-14줄을 보려면 시작 줄에서 총 줄 수(100)에서 시작 줄 마이너스 1을 빼서 시작 줄을 계산합니다 (100 - 9 = 91). 그런 다음 이 명령어를 사용하세요:

tail -n 91 samplefile.txt | head -n 5

이것은 10-14줄을 표시합니다. less를 사용하여 확인한 결과와 비교하여 출력을 확인할 수 있습니다.

로그 파일과 같이 지속적으로 업데이트되는 파일을 모니터링하는 경우, tail -f를 사용하여 실시간으로 변경 사항을 따를 수 있습니다.

마무리

로그를 살펴보건, 데이터 세트에서 작업을 하건, 큰 텍스트 파일을 보건, 이러한 방법을 통해 프로세스를 간단하고 효율적으로 만들 수 있습니다. 리눅스에서 큰 파일을 찾는 방법과 이를 터미널의 다른 위치로 전송하는 방법도 배울 수 있습니다.

이미지 크레딧: Unsplash. 모든 변경 및 스크린샷은 Haroon Javed의 작업입니다.