各行には、列のテキストと数字が含まれます。各行の数値の合計を計算する必要があります。どうすればいいですか?ありがとう
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}'