2017-01-30 3 views
0

今日、私はその中に列名のSELECTとその数を行うクエリを持つスクリプトがあります。それは50以上の異なる行をリストすることができます。パラメータを使用してAIX上で整数を合計

Ex。

BOOK 12 
SHELF 2 
DESK 3 

アウトラインコード:

[query] | while read unk_mtype_volume ; do 

    echo "$unk_mtype_volume" 

done 

私は、合計を持っているために、すべての行数を合計する必要があります。

答えて

2

これは、awkの単純な仕事です。ファイル/入力の行よりも高価な繰り返しは必要ありません。ただ、第二フィールドを追加し、最終的には価値印刷:

awk '{sum+=$2} END{print sum}' file.txt 

入力はSTDINから来ている場合を:

... | awk '{sum+=$2} END{print sum}' 

例:

% cat file.txt 
BOOK 12 
SHELF 2 
DESK 3 

% awk '{sum+=$2} END{print sum}' file.txt 
17 
0

することはでき(と私は)awkをジョブに使用します - answerheemaylと表示されます。

sum=0 
while read location number 
do 
    sum=$(($sum + $number)) 
done 
echo "Total: $sum" 

「場所」のいずれかが複数の単語で構成されている場合、これは壊れやすいことに注意してください。 awkではBashよりも簡単にコードを書くことができます。

関連する問題