3

各「ヘッダー」の後に「テキスト」のインスタンスを数えたいと思います。私は grep と awk を使用していますが、どのツールでも使用できます。私のファイルは次のようになります。

header1
text1
text2
text3
header2
text1
header3
header4
text1
text2
...

優れた出力は次のようになります

header1 3
header2 2
header3 0
header4 2
...

私の質問はこれに似ていますが、合計出現数を数えるのではなく、特定の文字列間の出現数を数えることが必要です。

4

2 に答える 2

4

この awk コマンドは、ファイル全体をメモリに保存しません。

awk '/^header/{if (head) print head,k;head=$1; k=0}!/^header/{k++}END{print head,k}' file

を含む行をカウントすることのみに関心がある場合はtext、スクリプトを次のように変更します。

awk '/^header/{if (head) print head,k;head=$1; k=0}/text/{k++}END{print head,k}' file
于 2013-08-14T10:17:27.227 に答える