awk 읽기 오류 주소 오류

awk 읽기 오류 주소 오류

약 30GB의 파일이 있습니다. 나는 사용하고있다,

awk ' $1 <= 2000 ' myfile.txt >> myfile_new.txt

그러나 잠시 후 이런 오류가 발생합니다.

awk: read error (Bad address)

아무래도 파일이 너무 커서 그런 것 같아요. 이것을 극복할 수 있는 방법이 있나요? 내가 또 무엇을 할 수 있나요? 내가 해야 할 일은 간단합니다. 열에서 2000 미만의 값을 가진 모든 레코드를 추출해야 합니다.

답변1

mawk특히 대용량 데이터를 처리할 때 이와 같은 오류를 일으킬 수 있는 몇 가지 최적화 기능이 있는 이를 사용하고 있을 수 있습니다 . gawk동일한 방식으로 실행하면 이러한 문제가 발생하지 않을 수 있습니다.

답변2

Perl은 그것을 할 수 있습니다.

#!/bin/env perl
use strict;
use warnings;
while(my $ln=<>){ my($f) = split(/\s/,$ln); if($f<=2000) { print $ln;} }

Python과 Ruby도 사용할 수 있습니다.

#!/bin/env ruby
while( rec = gets() ) do
  fld = rec.match(/^(\w+)\s/)
  if(fld[1].to_i <= 2000) then puts rec end
end

관련 정보