【发布时间】:2021-03-19 07:38:19
【问题描述】:
潜伏已久,第一次发帖。
几天来,我试图比较两个排序的文件,但没有成功。 我试过 comm 和 diff,甚至是 grep -v -f 。 即使我将它们合并在一起并使用 uniq -c ,它也会将每个出现都显示为 1 ,因此它显然不认为这些行是相同的。 comm 还显示所有 4000 行对于两个文件都是唯一的。但对于人眼来说,它们是相同的。 file -i 表明它们具有相同的编码。我通过VI检查了隐藏字符,它们完全相同。
[root@server tmp]# file -i master.tmp
master.tmp: text/plain; charset=us-ascii
[root@server tmp]# file -i mediaa.tmp
mediaa.tmp: text/plain; charset=us-ascii
我无法分享确切的线条,但它们看起来类似于:
XXXXX%20(35e4df6a-48dd-43f-921-03942bd4)_1614884940
文件之间的唯一区别是它们的创建方式。 一种是应用命令的直接输出。另一个是从不同应用程序的输出中组合起来的,必须使用 AWK 进行操作以实现相同的结构。 另一个线索是,一旦我将文本复制到我的记事本++,然后将其复制回终端,它就会开始正常工作。但这是不需要的,整个比较将成为更大脚本的一部分,我需要它是自动的。是否有任何命令可以用来清除文件结构中的任何差异?我找到了 iconv 但我不确定我应该尝试哪种其他编码。 任何想法我在这里缺少什么? 谢谢
【问题讨论】:
标签: bash character-encoding comm