본문 바로가기
C.W.K.
Stream
Lesson 01 of 10 · published

cat, less, more

~8 min · cat, less, more, pager

Level 0창 구경꾼
0 XP0/95 lessons0/14 achievements
0/100 XP to next level100 XP to go0% complete

파일을 읽는 세 가지 방식

cat은 입력을 stdout으로 끝까지 내보내고, less는 화면 단위로 탐색하게 해. more는 더 단순한 전통적 pager지만 오늘날에는 대개 less가 그 역할을 대신해. 파일 크기와 목적을 모르고 내용을 터미널에 전부 쏟기보다, 전체 전달이 필요한지 대화형 탐색이 필요한지 먼저 결정해.

cat: 이어 붙여 출력해

cat file은 파일을 그대로 stdout에 보내고, cat a b c는 세 파일을 순서대로 이어 붙여. -n은 줄 번호를 붙이고 -A는 탭과 줄 끝처럼 보이지 않는 문자를 드러내는 데 도움을 줘. 단일 파일을 화면으로 읽는 데 굳이 cat을 거칠 필요는 없지만, 여러 입력을 하나의 스트림으로 합치거나 다른 명령으로 전달할 때는 이름 그대로 유용해.

less: 필요한 부분을 탐색해

less에서는 Spaceb로 페이지를 앞뒤로 이동하고, jk로 한 줄씩 움직여. /pattern?pattern은 앞뒤 검색, nN은 다음·이전 일치 항목, gG는 처음·끝, q는 종료야. 큰 로그를 한꺼번에 메모리에 올리거나 화면에 출력하지 않고 필요한 위치를 찾을 수 있어. F는 파일 끝을 따라가며 새 로그를 관찰할 때 쓸 수 있어.

여러 도구가 less를 기본 pager로 써

man, git log, git diff 같은 명령은 긴 출력을 pager로 넘길 수 있어. PAGERLESS 환경 변수로 동작을 조정하되, 자동화에서는 pager가 입력을 기다리지 않도록 비대화형 조건을 분리해야 해. less -R은 ANSI 색을 제한적으로 유지하고, -F는 한 화면에 들어오면 바로 끝내며, -X는 종료 뒤 화면 내용을 남겨.

파일의 종류와 크기를 먼저 확인해

file, wc -c, du -h로 입력의 형식과 크기를 살핀 뒤 읽는 도구를 골라. 바이너리나 매우 큰 파일을 터미널에 그대로 보내면 제어 문자가 화면 상태를 바꾸거나 출력 때문에 세션이 느려질 수 있어. 필요한 범위가 파일 앞이나 뒤라면 headtail을 쓰고, 검색이 목적이면 grep처럼 결과 범위를 줄이는 도구를 먼저 적용해.

Code

cat이 OK 인 때 대 UUOC·bash
# 불필요한 cat 사용
cat file | grep foo
# 파일을 직접 전달
grep foo file
# 탭과 줄바꿈을 살필 때는 cat도 유용
cat -A weird.txt

External links

Exercise

less ~/.zshrc를 열어 /export로 검색하고 n으로 다음 항목을 찾은 뒤 q로 종료해. 이어서 cat -A ~/.zshrc | head로 탭과 줄 끝 표시를 확인해. 큰 파일에는 두 방식 가운데 어느 쪽이 더 적합한지 이유도 설명해 봐.

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

🔔 답글 알림 (로그인 필요)
로그인댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.