【发布时间】:2014-06-14 21:21:55
【问题描述】:
目标:创建一个文件,列出两个文件中未找到的所有行
操作系统:Mac OS X,使用终端
问题:行包含重音字符 (UTF-8),比较似乎不起作用
我使用以下命令来比较两个文件:
comm -13 <(sort file1) <(sort file2) > file3
该命令工作正常,但文件中包含重音字符的行除外。你有什么解决办法吗?
我尝试过的一个非最佳方法是用sed -i 将所有重音字符替换为非重音字符,但这似乎不适用于我的两个文件之一,所以我假设一个文件被奇怪地编码(事实上,在 TextMate 中打开文件时,ü 显示为 u¨,但在 TextEdit 中正确显示为 ü - 我使用 find Photos/ -type f > list_photos.txt 生成该文件以滚动浏览所有包含重音字符的文件名......也许我应该添加另一个参数find 命令放在首位?)。对此也有任何想法吗?
非常感谢。
更新:
我手动创建了带有重音字符的文本文件。 comm 命令无需 LC_ALL 即可工作。所以问题一定出在将文件名输出到文本文件中(find 命令)。
测试文件A:
Istanbul 001 Mosquée Süleymaniye.JPG
Istanbul 002 Mosquée Süleymaniye.JPG
测试文件B:
Istanbul 001 Mosquée Süleymaniye.JPG
Istanbul 002 Mosquée Süleymaniye - Angle.JPG
Istanbul 003 Ville.JPG
比较会产生预期的结果。但是当我自动创建这些文件时,我会在文本文件中获取 Su¨leymaniye。当我不生成输出文件时,终端会向我显示正确的单词 Süleymaniye。
非常感谢您的调查。非常感谢。
【问题讨论】: