さまざまな形式のテキストファイルが複数あります。
x y z
x y z
x y z
z
新しいファイルを作成し、各ファイルの値を合計してから、合計した値を変更したいと思います。z
つまり
x y (z1+z2+z3+z4)
x y (z1+z2+z3+z4)
x y (z1+z2+z3+z4)
コマンドラインでこれを行うにはどうすればよいですか?私はawk
この目的のためにそれをどのように使用するのか、それともこれが実際に最も効率的な方法なのかを知っていますが、完全にはわかりません。
答え1
リンクされたファイルをawk
2回渡すことができます。最初は()NR==FNR
すべてのファイルのsum
3番目の列()の値を計算し$3
、2番目は既存の値を合計に置き換えます。
awk 'NR==FNR{sum+=$3;next}; {$3=sum; print}' <(cat file1 file2...fileN) \
<(cat file1 file2...fileN) > result.txt