同じ数(長さ48554)の非常に大きなファイルに2つの列(1つのファイル内)を貼り付ける必要があります。私はこれを試しました
タブで区切られた列を持つ2つのファイルがあります。ファイル1は次のようになります。
ヘッダ_1 ヘッダ_2
0 23
1 25
ファイル2は次のようになります。
Header_3 header_4 2 24 3 26
私が望むのはこれです:
Header_1 header_2 Header_3 header_4 0 23 2 24 1 25 3 26
たとえば、貼り付けようとしました。
ファイル1ファイル2貼り付け|
- しかし、私はそれを理解します:
Header_1 header_2 0 23 1 25 Header_3 header_4 2 24 3 26
つまり、問題は、必要に応じて+ 5000列の行列で2つの追加の列を並べて追加するのではなく、貼り付けがファイル2の新しい列をファイル1の最後の列の下部に追加することです。
私は何が間違っていましたか?
答え1
区切り文字はタブではなく空白のように見えますが、paste
私はうまくいきます。
試してみる代替案
join <(nl file1) <(nl file2) | cut -d' ' -f2-5
または
awk '{ if (FNR==NR) {F[NR]=$1;G[NR]=$2; next}; {printf "%s\t%s\t%s\t%s\n", $1, $2, F[FNR], G[FNR]}}' file2 file1
答え2
実際には、両方のファイルをテーブル/データフレームにインポートしてRで動作させることができます。
file1<-read.table("file1.txt")
file2<-read.table("file2.txt")
次に cbind を使用します。
combined.txt <- cbind(file1, file2)
しかし、私にも効果的な単純なUNIX機能がないことを理解するのが難しいです。