добавить значение в файл со значением вывода, сгенерированным с помощью script

Если вы хотите, чтобы сообщение об ошибке отображалось в выходном файле, вам придется перенаправить поток ошибок в то же место, что и выходной поток.:

/opt/techunix/bin/pdsh.sh -f "$ServersListFile" -c "hostname" >>"$Result" 2>&1
2
09.01.2020, 13:24
2 ответа

Пробовал с помощью следующих шагов

sh script >scriptout
cat sample.log scriptout|awk -F ","  'BEGIN{sum=0;kum=0;jum=0} OFS =","{sum=sum+$1}{kum=kum+$2}{jum=jum+$3}END{print sum,kum,jum}' > final_out
mv final_out sample.log
1
27.01.2020, 22:07

Это способ сделать это с помощью 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

Это будет работать с любым количеством полей. (Не обязательно должны быть согласованными ). В качестве разделителя установлена ​​запятая, но это можно легко изменить.

1
27.01.2020, 22:07

Теги

Похожие вопросы