質問行の後の回答に使用される単語数を数えます。

質問行の後の回答に使用される単語数を数えます。

入力例:

Question1: What kind of cake do you like?
Anything with sprinkles

出力例:

Question1: What kind of cake do you like?
3 Anything with sprinkles

唯一の表示は「Questionx:」と「?」です。答えは常に質問の後に続きます。これは私に迷惑ですが(/?$/を探してください)、単語数($ NF)によく合う複数行の側面を得ることはできません。 perl / python / phpなどの他の言語も使用できますが、単純な1行のプログラムは書かないようにしています。

答え1

上記の私のコメントへの回答を待っています。

awk '/^Question[0-9]+:.*\?$/ {print; next} {print NF, $0}'

または

awk '{printf "%s%s\n", (/^Question[0-9]+:.*\?$/ ? "" : NF " "), $0}'

答え2

これにより、各質問の「単語」の数が個別に提供されます。

awk '/^Question/ {if (NR > 0) print words; words=0} $0 !~ /^Question/ {words+=NF}' /path/to/input

説明したように、質問と行ごとの単語数を印刷するには、次の手順を実行します。

awk '/^Question/ {print} $0 !~ /^Question/ {print NF, $0}' /path/to/input

各行の数値プレフィックスを累積します。

awk '/^Question/ {words=0; print} $0 !~ /^Question/ {words+=NF; print words, $0}' /path/to/input

関連情報