プロが教えるわが家の防犯対策術!

文末に"。""!""?"があれば改行し、さらに文の途中で改行されていたら1行に繋げ、"。""!""?"の後に"」"がある場合は、"。」""!」""?」"で改行するスクリプトを教えてください。途中まではできたので、参考に載せておくのでお願いします。

# onereq.awk
# 分析対象テキストを、1文1行(レコード)形式に整形する
# 日本語用
# 文末記号 。!?があれば改行
# 文中での改行は1行につなげる
# 「」をうまく表示させる

{
gsub( /。/, "。\n", $0)
gsub( /?/, "?\n", $0)
gsub( /!/, "!\n", $0)

print( $0 )
}

A 回答 (2件)

こんばんは。


1段落(空行で区切られたレコード)があまり大きくなければ
これで十分だと思います。以下の「$0」はすべて省略可能です。

BEGIN{ RS = "" }
{
gsub(/\n/, "", $0)
gsub(/(。|!|?)(」)?/, "&\n", $0)
print $0
}
    • good
    • 0
この回答へのお礼

遅くなって申し訳ありません。
回答ありがとうございました。とても役に立ちました。
また質問することがあるかと思いますが、そのときももしよければご協力お願いします。
この度は本当にありがとうございました。

お礼日時:2004/07/29 17:07

入力される文章は、一行の中に何個も"。

""!""?"がありますか?

例えば…

これが文頭です。「ここはまだ文末ではありませんね?」「ここもまだです。」ここは行末だが
まだ文末ではありません。ここでやっと文末だ!

上記の例のようなパターンが存在すると、処理が面倒になります。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!