2

新しいファイルが同じ 2 列目と 5 つのファイルの 3 列目の合計になるように、5 つのファイルの 3 列目を追加したいと考えています。

私はこのようなことを試しました:

$ cat freqdat044.dat | awk '{n=$3; getline <"freqdat046.dat";print $2" " n+$3}' > freqtrial1.dat 

freqdat048.dat`enter code here`$ cat freqdat044.dat | awk '{n=$3; getline <"freqdat046.dat";print $2" " n+$3}' > freqtrial1.dat

ファイル名:

freqdat044.dat
freqdat045.dat
freqdat046.dat
freqdat047.dat 
freqdat049.dat
freqdat050.dat

そして、出力ファイルに保存されたものだけが含まれ$2、新しい列は3番目の合計を形成します

4

1 に答える 1

5
awk '{x[$2] += $3} END {for(y in x) print y,x[y]}' freqdat044.dat freqdat045.dat freqdat046.dat freqdat047.dat freqdat049.dat freqdat050.dat

これは、必ずしも最初のファイルに表示されるとおりに行を印刷するとは限りません。その並べ替えを保持したい場合は、その順序をどこかに保存する必要があります。

awk 'FNR==NR {keys[FNR]=$2; cnt=FNR} {x[$2] += $3} END {for(i=1; i<=cnt; ++i) print keys[i],x[keys[i]]}' freqdat044.dat freqdat045.dat freqdat046.dat freqdat047.dat freqdat049.dat freqdat050.dat
于 2013-09-03T19:52:51.167 に答える