2011-09-17 45 views
0

我有一個超過一百萬列的非常大的文件。我需要在文件中添加第二列,第三列,第四列,第五列和第六列,第二列是第一列的副本,其他列在每一行中包含相同的值。因此,舉例來說,我有一個看起來像這樣的文件:Unix/bash:如何在包含> 1M列的文件中添加包含相同值的列?

id1 A A C T .. 
id2 A G T C .. 
id3 G A T C .. 
id4 G G T T .. 
. 
. 

,我需要將其更改爲:

id1 id1 0 0 -9 -9 A A C T .. 
id2 id2 0 0 -9 -9 A G T C .. 
id3 id3 0 0 -9 -9 G A T C .. 
id4 id4 0 0 -9 -9 G G T T .. 
. 
. 

如何做到這一點有效的Unix下(因爲我需要的任何想法重複這個很多次)?

回答

3
sed 's/^\([^ ]*\)/\1 \1 0 0 -9 -9/' 

如果這還不夠快寫一個C++程序,它只是幾行。

+0

我猜你不能做得更快; I/O瓶頸很可能會主宰正則表達式的開銷。 – tripleee

相關問題