それぞれ4つの列を持つファイルをそれぞれ4つの列を持つファイルにマージする[閉じる]

それぞれ4つの列を持つファイルをそれぞれ4つの列を持つファイルにマージする[閉じる]

だから、次のようなテキストファイルがたくさんあります。

T1
r1 abcd
r2 defg
...

T2
r1 hijk
r2 lmno
...

次の形式の4つのテキストファイルを作成したいと思います。

__T1 T2...
r1ああ...
r2dl...

__ T1 T2...
r1 bi...
r2 em...

デフォルトでは、特定の数のファイルがあります。それぞれ温度を選択し、磁場(T1 ...温度; r1、r2、..磁場)を実行すると、a、b、c、dなどが4つの異なる計算で構成され、各列は固有です。各T(ファイル)の最初の列をファイルにコンパイルしてExcelにコピーし、各Tの2番目の列を別のファイルにコンパイルして同じことをしたいと思います。誰かが私のファイルとまったく同じ形式になるようにデータを入れる方法を教えてくれれば、私の問題を詳しく説明できます。

答え1

T1、T2が4つの入力ファイルの名前であるとします。

awkを使用してください:

awk 'FNR==1 { header = header " " FILENAME;
              next # we want to skip the first line
            }
            { rows[$1]; for(i=2;i<=NF;i++) A[$1,i] = A[$1,i] " " $i }
        END { for(i=2;i<=5;i++) {
                printf("__%s\n", header);
                for(j in rows) printf("%s%s\n", j, A[j,i]);
              }
            }' T1 T2 T3 T4 

これにより、必要なすべてのテーブルを含む出力ファイルのみが生成されます。 4つのファイルに分割するには追加の作業が必要です。

FILENAME入力ファイル名の代わりに最初の行のヘッダー行を抽出するには$0

関連情報