728x90
반응형

 

리눅스에서 로그 파일의 1000번째 줄부터 2000번째 줄까지를 추출하여 별도 파일로 저장


✅ 방법 1: sed 명령어 사용

sed -n '1000,2000p' /path/to/source.log > /path/to/output.log

 

구성설명

 

-n 출력 억제 (선택한 줄만 출력)
'1000,2000p' 1000번 줄부터 2000번 줄까지 출력
> output.log 결과를 별도 파일로 저장

✅ 방법 2: awk 명령어 사용

awk 'NR>=1000 && NR<=2000' /path/to/source.log > /path/to/output.log
  • NR: 현재 라인 번호
  • NR >= 1000 && NR <= 2000인 줄만 출력

awk는 필터링 조건을 더 추가하고 싶을 때 확장성이 좋습니다.


✅ 예제

sed -n '1000,2000p' /var/log/syslog > ~/logs/syslog_chunk.log

또는

awk 'NR>=1000 && NR<=2000' /var/log/syslog > ~/logs/syslog_chunk.log

🔎 참고: 추출 대상 줄 수 확인

전체 라인 수를 먼저 알고 싶다면:

 
wc -l /path/to/source.log
wc -l /path/to/source.log

📝 추가 팁

  • 파일에 헤더 라인이 있는 경우, 첫 줄을 유지하고 1000~2000줄을 추가하고 싶다면 다음과 같이 조합도 가능:
 
(head -n 1 /path/to/source.log && sed -n '1000,2000p' /path/to/source.log) > output_with_header.log

 

로그 파일에서 특정 문자열을 포함한 줄만 추출하거나, 압축된 로그(.gz 등)에서 직접 검색하는 방법

✅ 1. 특정 문자열 포함한 줄만 추출

🔹 grep 명령어 사용

grep "에러코드123" /path/to/logfile.log
옵션설명
"에러코드123" 찾고자 하는 문자열
/path/to/logfile.log 검색 대상 로그 파일 경로

🔹 여러 키워드 중 하나라도 포함된 줄 검색

grep -E "ERROR|FATAL|PANIC" logfile.log
  • -E는 extended regex 사용
  • |는 OR 조건

🔹 추출 결과를 별도 파일로 저장

grep "에러코드123" logfile.log > filtered.log

🔹 줄 번호도 함께 출력

grep -n "에러코드123" logfile.log

✅ 2. 압축된 로그(.gz)에서 직접 검색

🔹 zgrep 사용

zgrep "에러코드123" logfile.log.gz
  • zgrep은 gzip 파일에서 압축 해제 없이 직접 검색

🔹 여러 키워드 OR 검색 (zgrep -E)

zgrep -E "ERROR|FATAL|PANIC" logfile.log.gz

🔹 줄 번호까지 포함하고 싶다면

zcat logfile.log.gz | grep -n "에러코드123"
  • zcat으로 압축 해제 후 grep을 조합

🔹 1000~2000줄 사이에서 특정 문자열만 검색

sed -n '1000,2000p' logfile.log | grep "에러코드123"

또는 압축 파일이라면:

zcat logfile.log.gz | sed -n '1000,2000p' | grep "에러코드123"

📝 정리

목적명령어 예시
일반 로그에서 문자열 검색 grep "문자열" logfile.log
압축 로그에서 문자열 검색 zgrep "문자열" logfile.log.gz
줄 번호 포함 검색 grep -n "문자열" logfile.log
특정 줄 범위에서 검색 `sed -n '1000,2000p' logfile
결과 저장 ... > output.log

 

 

728x90
반응형

+ Recent posts