[ubuntu-jp:6127] sed の正規表現

Yoshinaga Hiroyuki yoshinaga.hiroyuki @ nifty.com
2019年 2月 27日 (水) 12:03:30 UTC


Ubuntu というより、sed の正規表現について伺いたく投稿させてもらいます

> $ lsb_release -a
> No LSB modules are available.
> Distributor ID:       Ubuntu
> Description:  Ubuntu 18.10
> Release:      18.10
> Codename:     cosmic
> $ sed --version
> sed (GNU sed) 4.5
> Copyright (C) 2018 Free Software Foundation, Inc.
> License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>.
> This is free software: you are free to change and redistribute it.
> There is NO WARRANTY, to the extent permitted by law.
>
> 作者 Jay Fenlason、 Tom Lord、 Ken Pizzini、
> および Paolo Bonzini。
> GNU sed home page: <https://www.gnu.org/software/sed/>.
> General help using GNU software: <https://www.gnu.org/gethelp/>.
> E-mail bug reports to: <bug-sed at gnu.org>.
といった環境で、かな文字を対象にしようとした所、
> $ echo ・ | LC_COLLATE=C.UTF-8 sed -r 's/[ぁ-ゟ]/かな/'
> かな
といった結果になります

ここで使った文字のコードは次のとおりで、なぜ「・」が置換されるのか解りません
あ 0x3041
ゟ 0x309F
・ 0x30FB

> $ echo ・ | LC_COLLATE=C.UTF-8 sed -r 's/[ゞ-ゟ]/かな/'
としても同じですが
> $ echo ・ | LC_COLLATE=C.UTF-8 sed -r 's/[あ-ゞゟ]/かな/'
は大丈夫なので、「ゟ」まで跨る書き方だと「・」が含まれてしまいます

この辺りの事情をご存知の方、ここより〜で質問したほうが良いといった情報をお待ちしています

--
-^.~.^-   吉永博之
~= ^ =~-  yoshinaga.hiroyuki at nifty.com
 ^ ~ ^ ~



ubuntu-jp メーリングリストの案内