Rの出力があり、出力を正しく印刷する必要があります。奇数行と偶数行を対応する列に印刷する必要があります。
オリジナルファイル
4 4 4 4 4
-3.592311e+00 -3.360352e+00 -3.063397e+00 -3.660137e+00 8.053911e+00
4 4 4 4 4
1.077868e+01 -2.455155e+00 6.214082e+00 5.311552e+00 5.311552e+00
10 10 10 10 10
-4.394679e+00 -2.527588e+00 7.716434e+00 5.001199e+00 2.653916e+00
10 10 10 10 10
3.673181e+00 3.721885e+00 3.464234e+00 -4.363173e-01 6.849429e-01
希望の出力
4 -3.592311e+00
4 -3.360352e+00
4 -3.063397e+00
4 -3.660137e+00
4 8.053911e+00
4 1.077868e+01
4 -2.455155e+00
4 6.214082e+00
4 5.311552e+00
4 5.311552e+00
10 -4.394679e+00
10 -2.527588e+00
10 7.716434e+00
10 5.001199e+00
10 2.653916e+00
10 3.673181e+00
10 3.721885e+00
10 3.464234e+00
10 -4.363173e-01
10 6.849429e-01
次のコードを使用しましたが、必要なものを提供しません。
awk '{ for (i = 1; i <= NF; i++) f[i] = f[i] " " $i ; if (NF > n) n = NF } END { for (i = 1; i <= n; i++) sub(/^ */, "", f[i]) ; for (i = 1; i <= n; i++) print f[i] } ' file
答え1
これは、偶数行と奇数行を適切な配列に分割することに依存するawk方法です。
$ awk 'NR%2 !=0 {split($0,col1)}; NR%2 == 0 {split($0,col2); for (i=1;i<=length(col1);i++) print col1[i],col2[i]};' inpu>
4 -3.592311e+00
4 -3.360352e+00
4 -3.063397e+00
4 -3.660137e+00
4 8.053911e+00
4 1.077868e+01
4 -2.455155e+00
4 6.214082e+00
4 5.311552e+00
4 5.311552e+00
10 -4.394679e+00
10 -2.527588e+00
10 7.716434e+00
10 5.001199e+00
10 2.653916e+00
10 3.673181e+00
10 3.721885e+00
10 3.464234e+00
10 -4.363173e-01
10 6.849429e-01
動作原理は非常に簡単です。NR % 2 != 0
この行が奇数行か偶数NR % 2 == 0
行かを示します。奇数行では、行全体を配列に分割します。偶数行では、2つの配列を項目ごとに分割して印刷します。このプロセスは、最後の行に達するまで交互に繰り返されます。
もちろん、これは柱間のスペースを増やすなどの方法で改善することができます。この方法は完璧ではありませんが、元のファイルの各行に同じ数のフィールドがある特定のケースに合わせて調整されました。