制作ẞ;MacOS bash上的小写字母
我对MacOS上的小写字母有问题。在我用于小写的所有工具中(gawk和tr,awk在编码方面有问题),它根本不是小写的。其他特殊字符的大小写正确。有人能想出解决办法吗 示例: tr 目瞪口呆 尝试使用GNU sed:制作ẞ;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 'ü
$ 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可以工作,但它不会产生那个输出。