藤岡さん
>なんだか、おかしいですね。Doughertyのsed & awkの66ページのメタキャラク
>タ一覧に「.」は「改行を除く任意の一文字にマッチする」と明確に定義されて
>いますよ。
GNU sedの拡張です。
`.'
Matches any character, including newline.
This is sed.info, produced by makeinfo version 4.5 from sed.texi.より。
(その本はGNU sedも考慮しているようですが、元々は考慮してないと思います。
英語版の2nd ed.でも同じように記述されていました。誤解しやすいですね。)
> しかし、改行とは行末にあるもので、そのほかの位置にある改行は単なる一文
>字と見做すということになっているということでしょうね。
行末でも1字です。
C:\>sed --version
GNU sed version 1.18 + multi-byte extension 1.03
特別に記さないかぎり、上の結果です。
--- test.sed ---
G # put a newline at the end of PS
s/\(.\)$/n/ # $ matiches $, not \n or an empty space before \n in SED
----------------
--- test.txt ---
a
----------------
--- kek --------
an
----------------