체인의정석

터미널에서 파일의앞,뒤,특정 부분만 뽑아서 출력하기(head, tail, grep) 본문

개발/docker & linux

터미널에서 파일의앞,뒤,특정 부분만 뽑아서 출력하기(head, tail, grep)

체인의정석 2023. 6. 26. 16:51
728x90
반응형

실제 프로덕트에서 에러 로그를 보고 디버깅을 할 때는 양이 많아서 cat으로는 찾기 어렵다.
따라서 원하는 상황에 맞게 로그를 터미널에서 검색해서 볼 수 있어야 한다.

1.  head

head는 앞 부분을 출력하는데 숫자를 안 넣으면 10개의 최근 기록들이 출력된다.

head error.log

앞에 20 행을 출력하려고 하면

head -n 20 error.log

이런식으로 하면 된다.

2. tail

tail은 뒷 부분을 출력하는데 숫자를 안 넣으면 마지막 10개의 기록이 출력된다.

tail error.log

마지막 20 행을 출력하려고 하면

tail -n 20 error.log

이런식으로 하면 된다.

물론 1000 행 씩 출력해도 된다.

 

3. cat [option] [filenam] grep

만약 abc라는 단어를 error.log 파일에서 찾으려면 다음과 같이 cat을 읽어오면 된다.

번호를 어떻게 붙이느냐에 따라서 다르지만

행의 마지막에 $를 표시하고 싶다면 e를
공백행을 제외하고 번호를 붙여서 출력하려면 b를
공백행에도 번호를 붙여서 출력하려면 n을

넣어주면 된다.

아래와 같은 명령어는 abc라는 단어가 있는 행을 출력한다.

cat -b error.log | grep abc

 

 

또한 폴더 아래에서 찾는 경우라면 다음과 같이 사용할 수도 있다.

cat -b error/* | grep abc

 

4. grep -r  [찾으려는문자] [filename]

같은 방식으로 특정 문자열을 특정 차일에서 검색하려면 다음과 같이 사용할 수 있다.

grep -r abc errors.log

 

728x90
반응형
Comments