発生回数を表示し、その間と最後の行以降の行数を計算します。

発生回数を表示し、その間と最後の行以降の行数を計算します。

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

table_01 (id, field01, field02, field03, field04)
record_01
record_02
record_03
table_02 (id, field01, field02, field03)
record_01
table_03 (id, field01, field02, field03, field04)
record_01
record_02
table_04 (id, field01, field02, field03, field04, field04)
record_01
table_05 (id, field01, field02, field03, field04)
record_01
record_02
record_03
record_04

table「」という単語が表示される行を表示し、その間の行数と最後の発生以降の行数を表示するスクリプトが必要です。

したがって、出力は次のようになります。

table_01 (id, field01, field02, field03, field04)
3
table_02 (id, field01, field02, field03)
1
table_03 (id, field01, field02, field03, field04)
2
table_04 (id, field01, field02, field03, field04, field04)
1
table_05 (id, field01, field02, field03, field04)
4

これまで、次のスクリプトがあります。

awk '$0 ~ /table/ {if (n) print NR-1-n; n=NR}' file

出力は次のとおりです。

3
1
2
1

ただし、スクリプトはtable" " が表示される行を表示せず、最後の発生以降の行も表示しません。欠落しているコンテンツを表示するにはどうすればよいですか?

ベストアンサー1

明らかに仕事の90%を完了しました。

awk'/table/{if(n) 印刷 NR-1-n;印刷}
     END {if (n) 印刷 NR-1-n}'             文書

$0 ~その必要はありません。

おすすめ記事