awk 高階,百萬行檔案取交集

2022-08-14 16:15:14 字數 1074 閱讀 5917

今天我們說的不是簡單的交集,而是如下示例:

file1:

as,er,gf,1212

kl,iop,1213

78,jkl,uio,jki,1214

vbnm,yuoi,678i,1215

sadfasdf,werqwerqw,qwerqwe,11111

uioupoiuiop,jklghj,217890

file2:

1212

1213

1214

說下需求,以f2為準,匹配f1,並輸出交集

如果資料量很小可以直接使用grep -f 來實現:

grep -f f2 f1

as,er,gf,1212

kl,iop,1213

78,jkl,uio,jki,121

但是如果像我的生產例項一樣,100w的資料量,就會出問題,

看來這樣操作不僅費時,還很耗記憶體,

接著介紹我們今天的主角,強大的awk:

time awk  -f','

'nr==fnrnr>fnr}

' oss_uuid front_90w-1.txt >>test

我們看下用時:

僅僅用了7s

簡單解釋一下上面的awk命令:

time:列印命令執行的時間

nr==fnr #處理第一檔案,也就是 oss_uuid 換成我們示例的,就是file2,將檔案轉換為陣列格式

nr>fnr} #處理第二個檔案,也就是 front_90w-1.txt,換成我們示例中,就是file1,將最後一列去file2中去做匹配,並輸出匹配到的行。
awk,強大!

POI解析百萬行excel的實現

poi 的usermodel api讀取大資料量excel會導致oom,可以使用eventmodel api來處理這種excel.少量的行數excel可以用 xssfworkbook wb new xssfworkbook inputstream xssfsheet sheet wb.getshee...

百萬行mysql,count 函式的思考與總結

如果你的需要是統計總行數時,為什麼要使用count 而避免使用指定具體的列名?count 函式裡面的引數是列名的的時候,那麼會計算這個欄位有值項的次數。也就是,該欄位沒有值的項並不會進入計算範圍 就是網上常說的值為null的項不納入統計 很多地方都有類似表述 count column counts ...

百萬行級排序演算法比較與研究

老闆最近給了我乙個空間資料壓縮包,壓縮包中包含10個檔案,每乙個檔案中包含id x座標 y座標 元素 一 元素二五種標籤,每個大約包含四百萬條資料。老闆對我提出的要求是以乙個檔案的xy座標為準,找出其他九個檔案中與其最相近的座標,將相近座標的兩個元素複製到標準檔案中。idx y元素一 元素二當時聽到...