Linux

[ Linux ] 파일 읽기 명령어의 종류와 차이점 비교

soyali 2025. 5. 20. 14:44

1. cat – 파일 내용을 한 번에 출력

  • 가장 기본적인 텍스트 출력 명령어
  • 파일의 전체 내용을 한 번에 출력합니다.
  • 작은 파일을 확인할 때 빠르고 직관적입니다.
cat file.txt

장점

  • 간단하고 빠름
  • 여러 파일을 동시에 출력 가능: cat file1.txt file2.txt

단점

  • 파일이 길면 스크롤이 넘어가면서 끝까지 출력됨
  • 페이지 단위로 보기 어렵고, 제어 불가

 

 

2. less – 페이지 단위로 파일 읽기

  • 많은 양의 텍스트 파일을 읽을 때 가장 많이 사용하는 명령어
  • 한 페이지씩 보여주고, 상하 이동, 검색이 가능
less file.txt

장점

  • ↑ ↓로 자유롭게 탐색
  • / 입력 후 검색 가능 (/error → 에러 단어 찾기)
  • q 누르면 종료

단점

  • 일시적인 뷰어 역할만 하므로 편집은 불가능

 

 

3. more – 예전 방식의 페이지 출력

  • less와 유사하지만 기능이 더 제한적
  • 하단에 --More-- 형태로 표시되며 한 페이지씩 넘김
more file.txt

장점

  • 매우 단순한 환경에서도 작동

단점

  • 스크롤 뒤로 못 감
  • 검색 기능 없음
  • 요즘은 less가 더 일반적

 

 

4. head – 파일 앞부분만 보기

  • 파일의 처음 N줄만 출력 (기본 10줄)
head file.txt
  • 줄 수 지정:
head -n 20 file.txt

장점

  • 로그나 설정 파일을 빠르게 미리보기에 적합

단점

  • 원하는 위치의 내용은 볼 수 없음

 

 

5. tail – 파일 뒷부분만 보기

  • head와 반대로 마지막 N줄 출력 (기본 10줄)
tail file.txt
  • 실시간으로 추가되는 로그 보기:
tail -f /var/log/syslog

장점

  • 로그 파일 실시간 모니터링에 최적
  • tail -f는 시스템 운영 중 매우 자주 사용됨

단점

  • 파일의 앞부분이나 중간을 볼 수 없음
  • 내용이 많으면 원하는 정보 찾기 어려움
  • 줄 번호나 강조 기능 없음
  • 정렬, 필터, 편집 불가

 

 

6. nl – 줄 번호와 함께 출력

  • cat과 비슷하지만, 각 줄에 번호를 붙여줍니다
nl file.txt

장점

  • 디버깅이나 스크립트 확인 시 줄 번호가 필요한 경우 유용

장점

  • 문서 형식(헤더/본문/푸터)을 기반으로 작동하기 때문에 생각보다 복잡하게 느껴질 수 있음

 

 

7. awk, sed – 특정 행 필터링 및 가공

  • 단순한 읽기보다 내용 가공이나 필터링에 사용
awk '{print $1}' file.txt # 첫 번째 필드만 출력 sed -n '5,10p' file.txt # 5~10번째 줄만 출력

장점

  • 정규표현식, 특정 조건에 따라 파일을 "읽고 가공" 가능
  • 로그 분석, 자동화 스크립트에서 매우 유용

단점

  • 대용량 파일 처리 시 속도 저하
  • 복잡한 조건 조합 시 코드 가독성 저하

 

 

 

명령어 비교 요약표

cat 전체 출력 빠르지만 길면 비효율적
less 페이지 탐색 가능 검색/스크롤/페이지 이동 지원
more 한 페이지씩 출력 제한적 기능, 요즘은 잘 안 씀
head 앞부분 N줄 출력 빠른 미리보기 용도
tail 마지막 N줄 / 실시간 출력 로그 확인에 최적화
nl 줄 번호 포함 출력 디버깅에 유용
awk 특정 열/조건 출력 복잡한 텍스트 가공 가능
sed 특정 줄, 패턴 검색 및 출력 부분 출력, 변환에 특화