2016-04-07 32 views
0

我想將市場矩陣文件分爲兩部分。這兩部分應該有不同的大小。這種大小應該與市場格式中由散列表示的矩陣的行數相對應。如何根據存儲在其中的矩陣的行數來拆分矩陣市場文件?

有一些例子: http://math.nist.gov/MatrixMarket/formats.html

對於通常的矩陣的文件格式,例如,100行這是很容易:

head -n 70 matrix1.mtx > matrix170.mtx 

tail -n 30 matrix1.mtx > matrix130.mtx 

其中matrix170.mtx有的matrix1.mtx 70條第一線等等。

謝謝。

回答

0

awk來救援!

你可以使用這個腳本來分割矩陣文件不均勻

awk -v splits='70 30' 'BEGIN{n=split(splits,s);i=1;limit=s[i]} 
         NR==1{split(FILENAME,f,".")} 
          {if(NR<=limit) suffix=s[i]; 
          else limit+=s[++i]} 
         i>n{exit} 
          {print > f[1] suffix "." f[2]}' matrix.mtx 

會生成兩個文件matrix70.mtx和輸入文件名和拆分值衍生matrix30.mtx