ファイル内のすべての数字をすばやく合計する方法は?

ファイル内のすべての数字をすばやく合計する方法は?

各行には、列のテキストと数字が含まれます。各行の数値の合計を計算する必要があります。どうすればいいですか?ありがとう

example.log には以下が含まれます。

time=31sec
time=192sec
time=18sec
time=543sec

答えは784話

答え1

grepサポートを選択すると、-o次のことを試すことができます。

$ grep -o '[[:digit:]]*' file | paste -sd+ - | bc
784

POSIX的に:

$ printf %d\\n "$(( $(tr -cs 0-9 '[\n*]' <file | paste -sd+ -) ))"
784

答え2

GNU最新バージョン(4.x)を使用するawk

awk 'BEGIN {FPAT="[0-9]+"}{s+=$1}END{print s}'

他の人と一緒に試してみてくださいawk

awk -F '[a-z=]*' '{s+=$2}END{print s}'

答え3

awk -F= '{sum+=$2};END{print sum}'

答え4

sed 's/=/ /' file | awk '{ sum+=$2 } END { print sum}'

関連情報