2N 行の複数列ファイルがあり、0、1、および欠落データ (「?」としてコード化) で構成されています。次のようになります。
1 0 0 ? 1 ?
1 ? 1 ? 1 1
1 0 1 ? 1 1
0 ? 0 1 0 ?
0 0 1 ? 0 0
0 0 0 ? 0 ?
0 ? 0 0 1 1
1 1 1 1 1 1
2行ごとに合計してN行ファイルを出力したい。「?」がある場合 行の場合、出力は「?」になるはずです。その特定のフィールドに対して (?+0=?+1=?+? = ?)。したがって、私の例の出力は次のようになります。
2 ? 1 ? 2 ?
1 ? 1 ? 1 ?
0 0 1 ? 0 ?
1 ? 1 1 2 2
このコードを試してみましたが、計算中に欠落データを「0」として扱っているようです。欠落しているデータを「?」として保持する方法はありますか? ?
cat <input_file> |awk -F ' ' '{if (NR%2==1){for(j=1;j<=NF;j++)array[j]=$j;}else{result="";for(i=1;i<=NF;i++){tmp=array[i]+$i;result=sprintf("%s%d ",result,tmp);}print result;}}' > <output_file>
助けてください。どんな提案でも大歓迎です!