> 텍스트 처리 및 검색 > lesspipe

lesspipe: less를 위한 입력 전처리기

`lesspipe`는 `less` 명령어의 기능을 확장하여 압축 파일, 아카이브, PDF 등 다양한 형식의 파일을 `less`로 직접 볼 수 있게 해주는 입력 전처리기 스크립트입니다. `LESSOPEN` 환경 변수를 통해 `less`가 파일을 열기 전에 `lesspipe`를 호출하여 파일 내용을 파이프라인으로 전달합니다. 이를 통해 사용자는 파일의 압축을 풀거나 변환하는 추가적인 단계 없이 즉시 내용을 확인할 수 있습니다.

개요

`lesspipe`는 `less`가 일반 텍스트 파일 외의 다양한 파일 형식을 처리할 수 있도록 돕는 유틸리티입니다. `less`가 파일을 열 때 `lesspipe` 스크립트를 실행하여 파일 내용을 표준 출력으로 변환하고, 이 출력을 `less`가 받아서 표시합니다.

주요 기능

  • 압축 파일 (gzip, bzip2, xz 등) 내용 직접 보기
  • 아카이브 파일 (tar, zip, rar 등) 내부 목록 및 내용 보기
  • PDF, 이미지 등 비텍스트 파일의 텍스트 추출 및 보기 (관련 도구 필요)
  • `less`의 강력한 검색 및 탐색 기능 유지

설치 및 설정

`lesspipe`는 대부분의 리눅스 배포판에서 `less` 패키지의 일부로 제공되거나 별도의 `lesspipe` 패키지로 제공됩니다. 핵심은 `LESSOPEN` 환경 변수를 설정하여 `less`가 `lesspipe`를 사용하도록 하는 것입니다.

설치 확인

대부분의 시스템에 기본 설치되어 있지만, 다음 명령어로 존재 여부를 확인할 수 있습니다.

which lesspipe

패키지 설치 (필요시)

만약 `lesspipe`가 설치되어 있지 않다면, 다음 명령어로 설치할 수 있습니다.

Debian/Ubuntu

sudo apt update && sudo apt install less

Fedora/RHEL

sudo dnf install less

LESSOPEN 환경 변수 설정

`lesspipe`를 활성화하려면 셸 설정 파일(예: `~/.bashrc`, `~/.zshrc`)에 `LESSOPEN` 환경 변수를 추가해야 합니다. `lesspipe`의 정확한 경로는 시스템마다 다를 수 있으므로 `which lesspipe`로 확인하세요.

LESSOPEN 설정 예시

export LESSOPEN="|/usr/bin/lesspipe %s"
export LESS_ADVANCED_PREPROCESSOR=1
source ~/.bashrc

일반적인 설정은 다음과 같습니다. `source` 명령어를 통해 변경 사항을 즉시 적용합니다.

LESSOPEN 변수 설명

  • `|`: 파이프를 통해 `lesspipe`의 출력을 `less`로 전달함을 의미합니다.
  • `%s`: `less`가 열려고 하는 파일의 경로를 나타내는 플레이스홀더입니다.
  • `LESS_ADVANCED_PREPROCESSOR=1`: 일부 `lesspipe` 버전에서 고급 전처리 기능을 활성화하는 데 사용됩니다.

사용 예시

`lesspipe`가 올바르게 설정되면, `less` 명령어를 평소처럼 사용하면 자동으로 다양한 파일 형식을 처리합니다.

gzip 압축 파일 내용 보기

less my_log.gz

압축을 풀지 않고 `.gz` 파일의 내용을 직접 `less`로 봅니다.

tar 아카이브 내부 파일 목록 보기

less my_archive.tar.gz

`.tar.gz` 파일의 압축을 풀지 않고 내부 파일 목록을 `less`로 확인합니다.

zip 파일 내부 파일 목록 보기

less my_documents.zip

`.zip` 파일의 압축을 풀지 않고 내부 파일 목록을 `less`로 확인합니다.

PDF 파일 텍스트 내용 보기

less document.pdf

`pdftotext`와 같은 도구가 설치되어 있다면, PDF 파일의 텍스트 내용을 `less`로 볼 수 있습니다.

바이너리 파일의 문자열 보기

less /bin/ls

바이너리 파일의 경우, `strings` 명령어를 통해 추출된 문자열을 `less`로 볼 수 있습니다.

팁 & 주의사항

`lesspipe`를 효과적으로 사용하기 위한 팁과 고려해야 할 사항들입니다.

사용자 정의 lesspipe 스크립트

기본 `lesspipe` 스크립트는 셸 스크립트이므로, 필요에 따라 수정하거나 자신만의 `lesspipe` 스크립트를 작성하여 `LESSOPEN` 변수에 지정할 수 있습니다. 예를 들어, 특정 파일 형식에 대한 추가적인 처리 로직을 추가할 수 있습니다.

  • 기존 `lesspipe` 스크립트 복사 및 수정
  • 새로운 파일 형식 처리 로직 추가
  • `LESSOPEN` 변수에 사용자 정의 스크립트 경로 지정

성능 고려

매우 큰 압축 파일이나 아카이브를 `lesspipe`로 열 경우, 파일 내용을 추출하고 변환하는 데 시간이 걸릴 수 있습니다. 이 경우 `less`가 시작되기까지 약간의 지연이 발생할 수 있습니다.

보안 주의

`lesspipe`는 파일을 처리하기 위해 외부 명령어를 실행합니다. 따라서 신뢰할 수 없는 `lesspipe` 스크립트를 사용하거나, 악의적인 파일이 `lesspipe`를 통해 처리될 경우 보안 문제가 발생할 수 있습니다. 항상 신뢰할 수 있는 소스의 `lesspipe`를 사용하고, `LESSOPEN` 변수 설정에 주의하십시오.

지원되는 파일 형식 확인

시스템에 설치된 `lesspipe` 스크립트의 내용을 확인하면 어떤 파일 형식을 지원하고 어떤 외부 도구를 사용하는지 알 수 있습니다. 일반적으로 `cat /usr/bin/lesspipe` (또는 해당 경로) 명령어로 스크립트 내용을 볼 수 있습니다.


동일 카테고리 명령어