Shell-Script

使用腳本生成的輸出值在文件中添加值

  • January 12, 2020

我有一個 txt/log 文件,其中包含數據- cat sample.log/(.txt)

500,3,2   

正在執行的腳本會覆蓋 sample.log 中的值。我希望數據與其各自的行相加,而不是覆蓋/或生成新行。

例子:

Sample.log -500,3,1  
Script out- 600,4,3

需要儲存的最終輸出sample.log

1100,7,4

每次腳本執行時,它都會繼續添加相應的值。

請幫我得到這個輸出。

這是一種使用 GNU awk 執行此操作的方法,其中呼叫腳本並呼叫script.sh現有的總文件/tmp/sample.log

script.sh|\
cat /tmp/sample.log -|\
awk -F, '{for (f=1;f<=NF;f++) TOT[f]+=$f} END {for (f=1;f<length(TOT);f++) printf TOT[f]","; print TOT[length(TOT)]}' >/tmp/sample1.log
mv -f /tmp/sample1.log /tmp/sample.log

來自的輸出script.sh被組合(放在下面的一行)現有的sample.log,然後將這兩行相加,awk結果用於替換sample.log

這將適用於任意數量的欄位(不必保持一致)。分隔符設置為逗號,但這很容易更改。

引用自:https://unix.stackexchange.com/questions/561176