리눅스 로그 파일 특정 라인만 출력하기 (sed, more, head, tail)

리눅스에 있는 긴 로그 파일을 살펴보는 쉬운 방법은 윈도우로 파일을 옮겨서 메모장이나 노트패드++ 같은 툴로 보는 겁니다. 그러나 언제나 그런 환경이 주어지진 않습니다. 리눅스에서도 용량이 10~100MB를 넘는 긴 텍스트 파일을 확인할 수 있어야 합니다. 라인이 수천 수만줄이 넘어가면 cat으로 보기는 어렵습니다. 그럴 때 활용할 수 있는 리눅스 명령어들이 있습니다.

sed 명령어 사용 방법

sed는 -n 옵션과 함께 사용하면 원하는 라인의 텍스트만 출력합니다. 

sed -n '확인할 라인p' file.txt

[예시]

[root@localhost ~]# sed -n '10p' line.txt
10번 라인입니다.

 

00번 라인~00번 라인을 출력할 땐 숫자를 두 개 넣으면 됩니다.

sed -n '시작라인, 종료라인p' line.txt

[예시]

[root@localhost ~]# sed -n '10,15p' line.txt
10번 라인입니다.
11번 라인입니다.
12번 라인입니다.
13번 라인입니다.
14번 라인입니다.
15번 라인입니다.

more, head, tail 사용 방법

페이지를 넘겨보듯 로그를 확인하고 싶거나, 맨 앞 또는 맨 뒷 줄의 일부 라인을 확인하고 싶은 경우 more, head, tail 같은 명령어를 활용할 수 있습니다.

more

more 파일명

[예시]

[root@localhost ~]# more line.txt
1번 라인입니다.
2번 라인입니다.
3번 라인입니다.
4번 라인입니다.
5번 라인입니다.
6번 라인입니다.
7번 라인입니다.
8번 라인입니다.
9번 라인입니다.
10번 라인입니다.
11번 라인입니다.
12번 라인입니다.
13번 라인입니다.
14번 라인입니다.
15번 라인입니다.
16번 라인입니다.
17번 라인입니다.
18번 라인입니다.
19번 라인입니다.
20번 라인입니다.
1번 라인입니다.
2번 라인입니다.
3번 라인입니다.
--More--(28%)

more은 한페이지에 담을 수 있는 만큼 출력하고 예시의 --More--(28%)처럼 출력을 완료한 비율 정보를 나타내며 출력을 멈춥니다. 이때 엔터키를 누르면 한 줄씩 추가로 출력하며 내용을 확인할 수 있습니다. 스페이스바를 누르면 한 페이지씩 출력하며 내용을 확인합니다.

head

head는 맨 앞의 00줄을 확인할 수 있습니다.

head -숫자 파일명

[예시]

[root@localhost ~]# head -10 line.txt
1번 라인입니다.
2번 라인입니다.
3번 라인입니다.
4번 라인입니다.
5번 라인입니다.
6번 라인입니다.
7번 라인입니다.
8번 라인입니다.
9번 라인입니다.
10번 라인입니다.

tail

more과 반대로 tail은 맨 뒤의 00줄을 확인할 수 있습니다.

tail -숫자 파일명

[예시]

[root@localhost ~]# tail -10 line.txt
11번 라인입니다.
12번 라인입니다.
13번 라인입니다.
14번 라인입니다.
15번 라인입니다.
16번 라인입니다.
17번 라인입니다.
18번 라인입니다.
19번 라인입니다.
20번 라인입니다.

 

내용을 정리하면 아래와 같습니다.

  • 00번 라인 ~ 00번 라인의 내용을 보고 싶다 : sed -n ‘시작라인,종료라인p’ 파일명
  • 맨 앞의 00줄을 보고 싶다 : head -숫자 파일명
  • 맨 뒤의 00줄을 보고 싶다 : tail -숫자 파일명
  • 업데이트 되는 로그를 실시간으로 보고 싶다 : tail -f 파일명
반응형

댓글

Designed by JB FACTORY