我正在尋找對X浮點數列求和的最有效方法,每一列都存盤在一個不同的檔案中。
所有檔案的行數完全相同(幾百行)。我不知道提前多少X。
示例X=3:
檔案1:
0.5
0
...
檔案2:
0
1.5
...
檔案3:
1.1
2
...
我想生成一個檔案,說sum_files:
1.6
3.5
...
在 awk 或 bash 中執行此操作的任何有效方法?(存在使用即席 python 腳本的解決方案,但我想知道如何在 awk 或 bash 中完成。)
謝謝!
uj5u.com熱心網友回復:
我將通過以下方式利用 GNUAWK的FNR 內置變數來完成此任務:
awk '{arr[FNR] =$1}END{for(i=1;i<=FNR;i =1){print arr[i]}}' file1 file2 file3
說明:對于每一行,arr在 key 下的陣列中增加值,即檔案中的行數,按第一個欄位的值。處理完所有print存盤在arr. 請注意,由于所有檔案的行數相同,因此FNR可能會被用作限制。for
uj5u.com熱心網友回復:
從每個檔案中讀取一行并用分隔符將它們連接起來,這是paste(1)做得很好的事情之一。將結果傳遞給以bc(1)得到總和:
paste -d file1 file2 file3 | bc -l
輸出:
1.6
3.5
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/451491.html
