アッ

アッ

txt次のファイルがあります。

Large 0
Large 0 
Large 1
Large 2
Medium 0
Medium 1
Medium 1    
small 1
small 3

さまざまな大型、中型、小型のラインをすべて組み合わせて、次のような結果を出力したいと思います。

Large 3
Medium 2
Small 4

別の同様の問題がありますが、他のファイルは単なる単語です。たとえば、次のようになります。

MVCC Cybersecurity
MVCC Cybersecurity
MVCC Cybersecurity

度数の合計、つまりサイバーセキュリティの総数を出力したいです。

MVCC 3

ベストアンサー1

perl -lane '@F == 2 and $h{$F[0]}+=$F[1]}{print "$_ $h{$_}" for keys %h' yourfile

行に正確に2つのフィールドがある場合は、キーの2番目のフィールドが最初のキーであるハッシュを更新してください。最後に、キーとその値を印刷してください。

ハッシュ%hのデータ構造は次のとおりです。

%h = ( ... LARGE => running_sum, ... );

アッ

awk '
   NF == 2 { seen[$1] += $2 }
   END{
      for(i in seen)
         print i, seen[i]
   }
' yourfile

おすすめ記事