我有一個文件(lookup.txt),其中包含一個由正則表達式列表組成的查找表,包含相應的數據(類別和句點)。例如Unix通過awk使用正則表達式加入兩個文件
INTERNODE|household/bills/broadband|monthly
ORIGIN ENERGY|household/bills/electricity|quarterly
TELSTRA.*BILL|household/bills/phone|quarterly
OPTUS|household/bills/mobile|quarterly
SKYPE|household/bills/skype|non-periodic
我有一個包含的費用列表,另一個文件(data.txt中),例如:
2009-10-31,cc,-39.9,INTERNODE BROADBAND
2009-10-31,cc,-50,ORIGIN ENERGY 543546
2009-10-31,cc,-68,INTERNODE BROADBAND EXCESS CHARGES
2009-10-31,cc,-90,TELSTRA MOBILE BILL
2009-11-02,cc,-320,TELSTRA HOME BILL
2009-11-03,cc,-22.96,DICK SMITH
2009-11-03,cc,-251.24,BUNNINGS
2009-11-04,cc,-4.2,7-ELEVEN
我想加入這兩者結合起來,由此的data.txt文件比賽的第4列lookup.txt文件第一列的正則表達式。
所以輸出將是:
2009-10-31,cc,-39.9,INTERNODE BROADBAND,household/bills/broadband,monthly
2009-10-31,cc,-50,ORIGIN ENERGY 543546,household/bills/electricity,quarterly
2009-10-31,cc,-68,INTERNODE BROADBAND EXCESS CHARGES,household/bills/broadband,monthly
2009-10-31,cc,-90,TELSTRA MOBILE BILL,household/bills/phone,quarterly
2009-11-02,cc,-320,TELSTRA HOME BILL,household/bills/phone,quarterly
2009-11-03,cc,-22.96,DICK SMITH
2009-11-03,cc,-251.24,BUNNINGS
2009-11-04,cc,-4.2,7-ELEVEN
我該使用bash的循環,遍歷查找,做裏grep和使用SED增加額外的列來達到的,但它是非常緩慢的。所以想知道是否有更快的方法來做這件事,說使用awk。
任何幫助,將不勝感激。
完美。正是我在找的東西。與直接的bash循環相比,速度非常快。 – Ben 2011-04-10 08:05:12
我有類似的任務要做,所以如果你能解釋一下這個awk行,我將不勝感激。 – Asgard 2013-01-11 14:55:22