Text-Processing
awk 讀取錯誤錯誤地址
我有一個大約 30GB 的文件。我在用,
awk ' $1 <= 2000 ' myfile.txt >> myfile_new.txt
但是,過了一會兒我得到了這個錯誤 -
awk: read error (Bad address)
我猜這是因為文件太大。有沒有辦法克服這個問題?我還能怎麼做?我需要做的很簡單,我必須提取列中值小於 2000 的所有記錄。
您可能正在使用
mawk
,它有一些優化,在處理特別大的數據時可能會導致這樣的錯誤。gawk
以相同方式執行時可能不會出現這些問題。
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