制作ẞ;MacOS bash上的小写字母

制作ẞ;MacOS bash上的小写字母,bash,macos,awk,character,tr,Bash,Macos,Awk,Character,Tr,我对MacOS上的小写字母有问题。在我用于小写的所有工具中(gawk和tr,awk在编码方面有问题),它根本不是小写的。其他特殊字符的大小写正确。有人能想出解决办法吗 示例: tr 目瞪口呆 尝试使用GNU sed: $ echo üäößÜÄÖẞ | sed 's/./\L&/g' üäößüäöß 选项1:perl echo 'üäößÜÄÖẞ' | perl -CSD -ne 'print lc' echo üäößÜÄÖẞ | tr ẞ ß 选项2:tr echo 'ü

我对MacOS上的小写字母有问题。在我用于小写的所有工具中(gawk和tr,awk在编码方面有问题),它根本不是小写的。其他特殊字符的大小写正确。有人能想出解决办法吗

示例:

tr

目瞪口呆

尝试使用GNU sed:

$ echo üäößÜÄÖẞ | sed 's/./\L&/g'
üäößüäöß

选项1:
perl

echo 'üäößÜÄÖẞ' | perl -CSD -ne 'print lc'
echo üäößÜÄÖẞ | tr ẞ ß

选项2:
tr

echo 'üäößÜÄÖẞ' | perl -CSD -ne 'print lc'
echo üäößÜÄÖẞ | tr ẞ ß
因为两者都
ß
完全“不同”,常用工具不知道小写版本

正如@Thilo所建议的,您可以使用
tr[option]stringValue1[stringValue2]
来 告诉
tr
更换
带有
ß



解决方法:是否有额外的
|trẞ ß
工作?您知道这些字符适用于哪些字符集吗?e、 g.共享
locale
的输出,应该注意,与显示的其他字符相反
(大写
ß
)是一个奇怪的词:它几乎从未被使用过,只存在于一些非常特殊的情况下(基本上只存在于ALL-CAPS中,即使如此,它通常也被表示为“SS”而不是那个字符)。这是因为
ß
永远不能位于单词的开头,因此永远不会“自然”大写。它甚至可以。
做额外的| trẞ ßwork?
-不适合我,因为
ß
在utf-8和
有两个字节,并且
tr
在那里一个字节一个字节地工作,所以它的工作方式很奇怪(比如
echo'abc'| tr'abc'xy'
,重复最后一个字节)。(旁注:德语来自
,其中拉丁文小写字母夏普S大写时变为“SS”
,这可能是相关的)@Thilo是的,它起作用了。但我想知道,为什么它会这样工作,需要一些变通办法。对于使用Windows/Linux的朋友,我的代码片段工作正常。在我的情况下,它不工作,这就是输出:
LüLäLöLßLÜLÄLÖLẞ
@michaltalaga那么您没有按照要求使用GNU sed。idk,我并不是说GNU sed可以工作,但它不会产生那个输出。