awk 6

대용량 로그 파일, 줄 번호로 필요한 구간만 정확히 추출하는 방법

대용량 로그 파일을 열어야 하는 상황,용량이 너무 커서 에디터가 멈추거나 터미널이 반응하지 않으면 당황스러울 수 있습니다.이 글에서는 줄 번호를 이용해원하는 구간만 정확하게 추출하는 방법을 정리합니다. 어느 날 로그 파일을 열어보려는데,파일이 너무 커서 열리지 않았습니다.크기를 보니 수 기가바이트에 달했습니다.에디터는 멈췄고,터미널에서도 파일을 열 수 없었습니다.하지만 포기할 순 없었습니다.그 안에는 반드시 확인해야 할 기록이 있었기 때문입니다.필요한 건 전체가 아니라 '한 구간'입니다대부분 로그 파일을 전부 살펴볼 필요는 없습니다.특정 에러가 발생한 지점과 그 주변 몇 줄이면 충분한 경우가 많습니다.핵심은 필요한 구간만 정확하게 꺼내오는 것입니다.Step 1: 시작 줄 번호 찾기우선, 찾고자 하는 내용..

IT/etc 2025.07.09

[linux][bash] 파일 크기 감시하기

파일 크기를 감시할 때 기존에는 아는 선에서 방법을 조합해서 사용했습니다. 리눅스에서 보통 ls -l 하면 파일의 상세 정보가 나오는데 5번째 항목에 파일 크기가 나옵니다.ls -l kk.jpg-rw-r--r-- 1 arhis arhis 32277 Oct 28 10:42 kk.jpg 이것을 awk 로 5번째에 있는 항목을 출력했습니다.ls -l kk.jpg | awk '{print $5}' 그런데 더 간단하고 pipe 안써도 되는 방법이 있었네요!! stat --format=%s kk.jpg32767  참고로 stat 옵션입니다.더보기 $ stat --helpUsage: stat [OPTION]... FILE...Display file or file system status.Mandatory argume..

IT/shell 2024.11.11

[python3] 셸 명령 파싱하기 성능 비교

기존에 파이썬 cpu 온도 얻어오는 코드가 awk 를 두번 돌려서 파싱하는 구조로 되어 있었습니다. vcgencmd measure_temp 명령 결과를 파이썬에서 파싱해도 되는데 뭐가 성능이 더 좋을까 하는 궁금증이 생겼습니다. pi@RPwiznet013:~/wiznet/skp_arhis/app $ python3 Python 3.7.3 (default, Jan 22 2021, 20:04:44) [GCC 8.3.0] on linux Type "help", "copyright", "credits" or "license" for more information. >>> import subprocess >>> ret, res = subprocess.getstatusoutput("vcgencmd measure_te..

IT/python 2024.01.05

[awk] 버전 파싱

기록용으로 남깁니다. 원본 문자열(version.py 파일 내): current = "0.7.7-2-debug" 원하는 문자열: 0.7.7-2-debug awk 명령 awk '/current = /{sub(/"/, "", $3); sub(/"/, "", $3); print $3)}' version.py sub는 sub(a, b, c)가 있으면 c의 값에서 a식에 일치하는 부분을 1개 찾아서 b로 바꿔서 c에다 다시 반영한다는 뜻입니다. 전체 뜻은 version.py 파일에 "current = " 가 있으면 공백으로 구별되는 3번째 항목을 얻어서 "를 한번 지우고 또 한번 지운다음에 출력하는 것입니다. $1 = "current", $2 = "=", $3 = ""0.7.7-2-debug"" 따옴표는 2개인데..

IT/System Digging 2021.06.28