「POSIXロケールで」とはどういう意味ですか?

「POSIXロケールで」とはどういう意味ですか?

存在するこの問題コメントはこう述べています。

これらすべては、「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:]]' filePOSIXのみに制限すると、POSIX以外のロケールで役に立つ操作を実行できなくなります。ただし、多くのシステムでは、異なるロケールとその文字クラスを定義しています。たとえば、GNU Cライブラリロケールを使用するシステムでは、

$ echo 'α' | LC_ALL=el_GR.UTF-8 grep '[[:lower:]]'
α

(これはel_GR.UTF-8ロケールが利用可能であると仮定しています。Debian派生バージョンでは、これを確認する簡単な方法はパッケージをインストールすることですlocales-all。)

おすすめ記事