awk 에 용량 제한이라는 것 있나요?

kbrworld의 이미지

query*
..
result=$(awk '{print $1}' $1)

echo $result
..

따위의 간단한 쿼리를 스크립트를 실행할 때도

query aa.txt
는 잘되고..

query 엄청큰DB파일.log
일 때는 공백만 출력이 되네요..

드디어 쿼리 짰는데 ;;

용량 큰 파일에 적용할
어떻게 방법없을까요?

도와주세요ㅜㅜ

ydhoney의 이미지

awk가 성능이 떨어져서 응답시간이 늦을지언정 큰 파일이라고 잘 안되지는 않을텐데..

같은 스크립트가 작은 파일은 잘 다루는데 큰 파일은 못 다루는게 맞는지부터 확인을;;

아래 말씀하신거 보면..잘 되는 스크립트같기도 하긴 한데;;

http://saliano.net/2011/05/24/monitoring-large-file-copies-with-bash-and-awk/

http://stackoverflow.com/questions/5829505/awk-a-huge-logfile-from-behind-until-timestamp

참조링크~

덕분에 tac을 두번 사용하는 방법을 알았네요. 후후~

익명 사용자의 이미지

잘 되어야 할텐데요.
굳이 적어주신 코드에서 찜찜해 보이는 부분을 찾는다면

result=$(awk '{print $1}' $1)

여기입니다.

엄청큰DB파일.log을 awk로 처리한 결과를 result변수에 넣으시는데요.
awk결과도 매우 크기가 크다는 점이 마음에 걸립니다.

중간에 변수에 저장하지 마시고, pipe로 최종 결과까지 처리하거나 임시 파일에 저장하는 등의 방법을 써보세요.
awk가 최종 처리였다면 result에 저장후에 echo $result하시지 말고 그냥

awk '{print $1}' $1

으로 끝내시고요.