2013-12-16 80 views
2

我有兩個文本文件,有效的方式來映射ID

文件1與數據,如

用戶遊戲計數

A Rugby 2 
A Football 2 
B Volleyball 1 
C TT 2 
... 

文件2

1 Basketball 
2 Football 
3 Rugby 
... 
90 TT 
91 Volleyball 
... 

現在我想要什麼要做的是在File 2中添加另一列,這樣我就可以將來自File 2的相應遊戲索引作爲F中的額外列ILE 1.

我在文件1.2萬個條目所以我想從文件2.如何有效地做到這一點另一列添加指定的遊戲指數(基本上是行號或訂單)。

現在我正在逐行進行這項工作。從文件讀取1行,用grep從文件2對應的遊戲其行號和保存/編寫到一個文件中。

這將需要我很多年。我如何加快速度?

回答

1

未經測試

awk 'NR==FNR{a[$2]=$1;next}{print $0,a[$2]}' file2 file1 
+0

我嘗試了在文件2中有1000萬行和在file1中有3000行的腳本,並且它需要永遠。有沒有更好的方法來做到這一點? – user34790

+0

1000萬不同的運動?你確定你有正確的順序的文件? '1籃球/ 2足球/ 3橄欖球/ etc'第一,'橄欖球2/A足球2/etc'第二? – Kevin

+0

是的,我讓他們在正確的順序 – user34790

1

你的文件2應該沒有記錄重複的,比如沒有兩個足球索引記錄。

awk 'FNR==NR{a[$2]=$1;next}$0=$0 FS a[$2]' file2 file1