次のファイルがあります。
lab1:/etc/scripts# cat /tmp/tmp.PGikhA/audit.txt
344 server1
1 server2
各行に数字を追加できるようにしたいです。したがって、この場合は344 + 1を加えて345になるようにします。
これまで、私は次のステップを見つけました。
lab-1:/etc/scripts# cat /tmp/tmp.PGikhA/audit.txt |awk '{print $1}'
344
1
しかし、それらをどのように組み合わせるのかわかりません。 $a + $b構文しか使用できないことはわかっていますが、344と1を別々の変数に入れてこれを行うにはどうすればよいですか?
ありがとうございます。
編集1
合計の代わりに2つの戻り値を取得します。何が間違っているのかわかりません。
lab-1:/etc/scripts# cat /tmp/tmp.jcbiih/audit.txt | awk '{print $1}' | awk '{ sum+=$1} {print
sum}'
344
345
lab-1:/etc/scripts# cat /tmp/tmp.jcbiih/audit.txt | awk '{ sum+=$1} {print sum}'
344
345
答え1
awkでは、数学演算を簡単に実行できます。例は次のとおりです。
awk '{ total+=$1 } END { print total }'
Bashを本当に使いたい場合は、簡単なループを使用して一度に1行ずつ読み、一緒に追加できます。
count=0
while read -r number _; do # put the first column in "number" and discard the rest of the line
count=$(( count + number ))
done < /tmp/foo
echo $count