存在するこの問題コメントはこう述べています。
これらすべては、「POSIXロケールで」が何を意味するのか理解していないことから来ています。 (-: ギリシャ語の小文字を (例:) sed および [[:lower:]] と便利な el_GR.UTF-8 ロケールと一致させるように努力する必要があります。 – JdeBP
それでは、「POSIXロケールで」とはどういう意味ですか?
ボーナス:C以外のロケールのPOSIXでも機能しますか?
LC_ALL=C grep '[[:lower:]]' file
ベストアンサー1
POSIXが("on")と言うとき
POSIX ロケールでは、以下のみ可能です。
ABCDEFGHIJKLMNOPQRSTU VWXYZ
以下を含める必要があります。
POSIX ロケールを定義します。つまり、POSIXロケールのコンテキストでは、「親」文字クラスにはリストされている文字のみが含まれます。
POSIXは他のロケールを定義しませんが、システムでは自由に定義できます。したがって、grep '[[:lower:]]' file
POSIXのみに制限すると、POSIX以外のロケールで役に立つ操作を実行できなくなります。ただし、多くのシステムでは、異なるロケールとその文字クラスを定義しています。たとえば、GNU Cライブラリロケールを使用するシステムでは、
$ echo 'α' | LC_ALL=el_GR.UTF-8 grep '[[:lower:]]'
α
(これはel_GR.UTF-8
ロケールが利用可能であると仮定しています。Debian派生バージョンでは、これを確認する簡単な方法はパッケージをインストールすることですlocales-all
。)