在较长的一行文件上使用diff


25

我有一个只有一行的文件。它的大小约为20,000个字节。

该文件已被修改,我想知道在哪里。

我以为使用diff,但是它显示了完整的行,因为它输出的行具有差异-但是在这种情况下,它是文件中唯一具有差异的行。

所以我想看看有什么区别。

有什么建议吗?



2
您是否尝试过将其管道传输到fmt(如果您当然使用Linux),则可以执行“ fmt -w 50 long.txt | diff”
l1zard 2012年

Answers:


13

假设有很多空格,如普通文本中一样,您可以按单词拆分文件,然后将其与普通的diff工具进行比较,例如,meld:

tr -s ' ' '\n' < file1.txt > file1.txt.split
tr -s ' ' '\n' < file2.txt > file2.txt.split
meld file1.txt.split file2.txt.split

2
对我来说似乎是最直接的解决方案。diff问题本身是微不足道的,但是大多数工具(不仅仅是diff-tools)不能管理长行,因此问题是处理长行而不是diff本身。
p1100i 2015年


3

如果这是一次性问题,我将创建文件副本,\n每50个字符插入一个字符,然后比较这些副本。(我选择50是因为它可以使数学轻松地从原始文件中的不同行号转换为字节偏移,但是可以根据我发现的值上下调整。)

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.