![awk 읽기 오류 주소 오류](https://linux55.com/image/51598/awk%20%EC%9D%BD%EA%B8%B0%20%EC%98%A4%EB%A5%98%20%EC%A3%BC%EC%86%8C%20%EC%98%A4%EB%A5%98.png)
약 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