$1
nawk を使用して、、、およびフィールド内のすべての数値を合計するにはどうすればよいです$2
か?$3
8 6 2
7 3 5
1 9 4
結果の合計が45になるようにしたい
答え1
nawk 'BEGIN { sum=0; } {sum += $1 + $2 + $3;} END { printf "%d\n", sum } ' a.in
答え2
awk を使用する:
awk '{x+=$0;}END{print x}' RS="[ \n]" file
これは行数や列数に関係なく機能します。レコード区切り文字 (RS) をスペースまたは改行文字として使用すると、すべての値が個別の行に分割されるため、簡単に追加できます。
答え3
coreutils と bc を使用することもできます。
<file head -c-1 | tr ' \n' '++'; echo) | bc
いくつかの列を省略する必要がある場合、たとえば入力が次のようになる場合:
A 8 6 2
B 7 3 5
C 1 9 4
cut
必要なものを選択できます:
<file cut -d' ' -f2- | head -c-1 | tr ' \n' '++'; echo) | bc
どちらの場合も出力は次のようになります。
45