Linuxは、各文字列の前に特定の数字が表示される回数を計算します。

Linuxは、各文字列の前に特定の数字が表示される回数を計算します。

私はこのファイルを持っています:

90  1 
120 1
Transition  
150 1
Transition  
165 1
Transition  
180 1
225 1
240 1
255 1
270 1
Transition  
285 1
Transition  

私は次のような出力が欲しい。

1   2
2   1
3   1
4   5
5   1

つまり、1最初の変換の前に2番目の列が2回表示されます。これにはawk / grepをどのように使用しますか?

ベストアンサー1

1各行の前/間の2番目のフィールドで回数を計算するには、次のようにTransition使用できます。awk

awk '$2 == "1" {count++;} /Transition/ {t_count++; print t_count "\t" count; count=0;}' <input file>

1フィールド 2 でカウンターがインクリメントされ、行が一致するたびに、変換されたTransition行数の数が印刷され、続いて行1数が印刷されます。

私の入力ファイルの出力:

1       2
2       1
3       1
4       5
5       1

おすすめ記事