💡요구사항 (What I want)

로그나 텍스트 파일 속 특정 키워드를 가진 라인을 출력하고 싶습니다. (.log, .txt 와 같은 파일 확장자)
출력된 라인을 파일로 따로 저장할 수 있을까요...?

 

무료 ChatGPT 버전을 사용 중입니다

질문에서 문법 실수는 눈감아주세요 ^^;


로그나 텍스트에서 키워드를 검색할 때, 터미널에서 주로 쓰는 명령어는 "| grep {키워드}" 일 것입니다.

하지만 시간 대가 기록된 로그에서는 일정 시간대 안에서만 특정 키워드를 가진 단어를 출력하고 싶을 때가 있을 것입니다. (저만 그렇지 않죠?? ^^)

먼저 터미널에서 사용할 수 있는 시스템(?) 추천을 받아봅시다.

질문 1. 추천해주세요

답변으로 cat, sed, less, vim, nano 를 추천해주네요.

답변 1. 여러가지 옵션 드립니다

그렇지만!!! 저는 이런 걸 원하지 않습니다...

조건들이 있기 때문에 조금 더 구체적으로 질문합니다. 

이때 기억이 가물한데 a 로 시작하는 명령어로 원하는 조건들을 출력할 수 있다는 사실을 알고 있었습니다.

혹시나 하는 마음에서 한번 물어봤습니다.

질문과 답변 2. awk

이겁니다!!!

awk 였습니다.

이제 활용방법을 알아볼까요? 이것도 물어봅시다.

참고로 예시를 구체적으로 해주면 원하는 답변을 할 확률이 높아집니다.

질문 3. 친절한 예시로 물어보기

저의 조건은 시간이 함께 기록된 로그 파일특정 시간동안 apple 이라는 키워드만 볼 수 있도록 하는 것이 목표입니다.

처음으로 돌아온 답변을 터미널에 입력했는데 안되길래 바로 고자질 했습니다. (^^...)

사과와 함께 다시 돌아온 답변은...!

답변

정리하면 아래와 같은 규칙을 가진다고 봅니다.


      
awk '/{시작시간}/,/{끝나는시간}/ {if (/{키워드}/) print}' your_file.txt > {저장되는 파일 이름}.txt

저는 시간 로그가 '[ ]' 특수기호를 포함했는데, 필요없기 때문에 위처럼 해줍니다.

그리고 '>' 기호 뒤에는 터미널에 출력하는 것이 아니고 txt 파일이나 log 파일로 저장할 때 쓸 수 있는 옵션입니다. 

터미널로 보고 싶다면 아래처럼만 입력하시면 됩니다.


      
awk '/{시작시간}/,/{끝나는시간}/ {if (/{키워드}/) print}' your_file.txt

 

고마워요 ChatGPT!!! (: