tr 改变文件编码?

tr changes file encoding?

我有一个包含姓名列表的 UTF-8 编码文本文件。我正在尝试为辅音和元音制作单独的文件,我使用简单的 tr -d list-of-vowels 进行管理,但由于某种原因,生成的文件将 ç 替换为 xA7,并且当我 运行 时,它进一步被 § 替换该文件通过 sed 脚本(并在此过程中弄乱了脚本,因此出现了问题)。文件中的所有符号(为了便于分析,我已经全部转为小写):
bcdfghjklmnpqrstvwxzçðñ àáâãæèéêëìíîïòóôõøúüýaeiouyäåö '*,-./`#

出于某种原因,只有 ç 会导致问题。 sed 我用来按年份计算文件中每个字符的数量的 sed -E -e 's/"([^"]*)","([^"]*)",.*/\L,/' -e 's/^([^,]+),(.)(.+)$/,\n,/; P; D' 但我认为它不应该有问题。

正在处理的文件是 .csv 文件,格式为:

"hanna","1919","2"  
"hanna","1919","2"  
"heidi","1919","2"  
"heidi","1919","2"  
"anja","1938","2"  
"anja","1938","2"  
"eila","1947","2"  
"eila","1947","2"  

先按年份排序,再按字母顺序排序。

关于 tr 为什么这样做以及如何阻止它的任何线索?我什至尝试 运行 sed -i "s/\ァ/\ç/g" 但它实际上没有做任何事情。然而,例如。 cat 解析错误字符。

GNU coreutils (8.29) 的 tr 当前版本不支持 UTF-8。

一个 bug report 表明这是版本 9 的路线图。

同时,使用sed