명령어/Linux

[리눅스] bat 문법 강조가 되는 cat

jykim23 2026. 7. 16. 17:48
반응형

부제: 줄번호와 색을 입혀 파일을 읽기 좋게 출력한다

bat src/app.py          # 문법 강조 + 줄번호로 출력
bat -r 2:5 config.json  # 2~5번째 줄만
bat -A logs/access.log  # 공백·탭 등 비출력 문자까지 표시
$ bat --version
bat 0.26.1

$ bat src/utils/helpers.py
     File: src/utils/helpers.py
   1 def format_bytes(n):
   2     for unit in ["B", "KB", "MB", "GB"]:
   3         if n < 1024:
   4             return f"{n:.1f}{unit}"
   5         n /= 1024
   6     return f"{n:.1f}TB"
   7 # TODO: handle negative numbers

bat는 파일 내용을 화면에 뿌리는 cat의 상위 호환이다. 확장자를 보고 언어를 판별해 문법을 색으로 강조하고, 줄번호와 파일명 헤더를 붙여준다. 긴 파일은 자동으로 페이저에 연결해 스크롤할 수 있고, git 저장소 안에서는 변경된 줄을 왼쪽에 표시한다. 파이프로 넘길 때는 장식을 자동으로 벗고 순수 텍스트만 내보내 cat 대신 그대로 끼워 쓸 수 있다. 데비안은 apt install bat(명령이 batcat일 수 있음), RHEL 계열은 EPEL을 켜고 dnf install bat으로 설치한다.

이렇게도 쓴다

특정 줄 범위만 잘라서 본다.

bat -r 10:20 src/app.py

 

여러 파일을 헤더로 구분해 이어서 본다.

bat src/app.py src/utils/helpers.py

 

확장자가 없는 파일에 언어를 강제로 지정한다.

bat -l json config

 

TODO가 든 파일을 찾아 한 화면에 강조해서 본다. (rg + bat 조합)

rg -l TODO | xargs bat

 

공백과 탭 같은 보이지 않는 문자를 눈에 보이게 표시한다.

bat -A logs/access.log

 

지원하는 언어 목록을 확인한다.

bat --list-languages
반응형