モード間の合計平均

モード間の合計平均

私は巨大なテキストファイルを持っており、各行に値またはテキストパターンが含まれています。

各パターン間の平均値または少なくとも合計値をどのように見つけることができますか?

awk / sedまたはperlソリューションがありますか?

例:

pattern1
200
300
pattern2
200
100
200
pattern3
pattern4

予想出力:

pattern1
250
pattern2
166
pattern3
pattern4

ベストアンサー1

Awk方法:

awk '/pattern/{ if (cnt) { printf "%d\n", sum/cnt; sum=cnt=0 } print }
     /^[0-9]+$/{ sum += $1; cnt++ }' file

出力:

pattern1
250
pattern2
166
pattern3
pattern4

おすすめ記事