2015-05-29 67 views
0

我在文本文件中有數據,其中數據行在幾列之後重複,每個新塊共享第一列行標籤。我想使用命令行將行對齊到一個表中。將文本文件中的行與命令行對齊

數據的文本文件看起來像:

Values  SampleA  SampleB  SampleC 
Value1  1.00  2.00  3.00 
Value2  3.00  2.00  1.00 
Value3  2.00  1.00  3.00 

Values  SampleD  SampleE  SampleF 
Value1  1.00  2.00  3.00 
Value2  3.00  2.00  1.00 
Value3  2.00  1.00  3.00 

而且我想生成的文件看起來像:

Values  SampleA  SampleB  SampleC  SampleD  SampleE  SampleF 
Value1  1.00  2.00  3.00  1.00  2.00  3.00 
Value2  3.00  2.00  1.00  3.00  2.00  1.00 
Value3  2.00  1.00  3.00  2.00  1.00  3.00 

回答

1

該解決方案創建大量的臨時文件,但經過清理。

# put each paragraph into it's own file: 
awk -v RS= '{print > sprintf("%s_%06d", FILENAME, NR)}' data.txt 

# now, join them, and align the columns 
join data.txt_* | column -t | tee data.txt.joined 

# and cleanup the temp files 
rm data.txt_* 

與驗證算賬:wc -l data.txt data.txt.joined

+0

它的工作原理,如果我改變了第二個命令:'加入-e data.txt_ * |列-t | tee data.txt.joined' – srmulcahy