我正在尝试从文件(UTF-8)中删除一些字符。我正在tr
为此目的使用:
tr -cs '[[:alpha:][:space:]]' ' ' <testdata.dat
文件包含一些外来字符(例如“Латвийская”或“àé”)。tr
似乎不了解它们:它将它们视为非Alpha并将其删除。
我尝试过更改某些语言环境设置:
LC_CTYPE=C LC_COLLATE=C tr -cs '[[:alpha:][:space:]]' ' ' <testdata.dat
LC_CTYPE=ru_RU.UTF-8 LC_COLLATE=C tr -cs '[[:alpha:][:space:]]' ' ' <testdata.dat
LC_CTYPE=ru_RU.UTF-8 LC_COLLATE=ru_RU.UTF-8 tr -cs '[[:alpha:][:space:]]' ' ' <testdata.dat
不幸的是,这些都不起作用。
如何tr
理解Unicode?