1

17列のテキストファイル(タブ区切り)があります。このようにこの構造を変えたいと思います。もちろん、ファイルの最後まで1から6までの列を保存し、7から16までの列(17を削除できます)を上下に追加して、列ごとに1から5までのすべての列を繰り返します。追加した。これは、追加した列を追跡し、どの行から開始するかを確認するために、次に追加する開始まで同じ番号の列を追加する必要があることを意味します。

これが十分に明確であることを願っています。

貴重な時間とサポートに感謝します。

オリジナル

179    1   AA     19.50    30.00  1.0000  2.0000  3.0000 ...  
180    1   BB     19.75    30.00  4.0000  5.0000  6.0000 ...  
230    1   CC     32.25    30.00  7.0000  8.0000  9.0000 ...  

必要

179    1  1 AA     19.50     30.00  1.0000    
180    1  1 BB     19.75     30.00  4.0000    
230    1  1 CC     32.25     30.00  7.0000  
179    1  2 AA     19.50     30.00  2.0000   
180    1  2 BB     19.75     30.00  5.0000    
230    1  2 CC     32.25     30.00  8.0000   
179    1  3 AA     19.50     30.00  3.0000    
180    1  3 BB     19.75     30.00  6.0000    
230    1  3 CC     32.25     30.00  9.0000   
4

1 に答える 1

1

アイデアについてはどうですか(awkを使用して列データを選択し、一時出力ファイルを使用してデータを保持します):

Rearrange.awk:

{
   for (i=6; i<=NF; ++i) {
      print $1, $2, (i-5), $3, $4, $5, $i > "temp_output"i".txt"
   }
}

次に、これはスクリプトで使用されます。

awk -f rearrange.awk < input.txt
cat temp_output*.txt > output.txt
rm temp_output*.txt
于 2012-06-14T09:07:24.697 に答える