入力例:
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