标签: file-comparison

rsync 比较目录?

是否可以使用 rsync 比较两个目录并仅打印差异?有一个试运行选项,但是当我将详细程度增加到一定程度时,会显示每个比较的文件。

ls -alR并且diff在这里没有选择,因为源中有硬链接使每一行都不同。(当然,我可以用 perl 删除此列。)

directory rsync file-comparison

86
推荐指数
5
解决办法
13万
查看次数

比较目录但不比较文件内容

diff -r
Run Code Online (Sandbox Code Playgroud)

我可以做这个任务,但是它需要很长时间,因为diff检查文件的内容。

我想要一些东西来确定两个文件在大小、上次修改等方面是相同的。但是没有一点一点地检查文件(例如一个视频需要很长时间)。

有没有其他办法?

diff file-comparison

35
推荐指数
2
解决办法
2万
查看次数

是否有一种工具或脚本可以通过仅比较文件大小和一小部分文件内容来快速找到重复项?

在处理 jpg 或 h264 压缩文件时,像 fdupes 这样的工具是荒谬的矫枉过正。两个具有完全相同文件大小的此类文件已经很好地表明它们是相同的。

除此之外,如果提取并比较 16 个等距的 16 字节块,并且它们也相同,那么就有足够的证据让我假设它们是相同的。有这样的事吗?

(顺便说一句,我知道文件大小本身可能是一个相当不可靠的指标,因为可以选择压缩到某些目标大小,例如 1MB 或 1 CD/DVD。如果在许多文件上使用相同的目标大小,这是相当合理的一些不同的文件将具有完全相同的大小。)

find file-comparison

17
推荐指数
5
解决办法
4551
查看次数

如何检查两个 gzip 压缩文件是否相等?

我试图通过简单地将数据转储到文本文件中来节省空间,同时进行“哑”备份。我的备份脚本每天执行一次,如下所示:

  1. 创建一个以备份日期命名的目录。
  2. 将一些数据转储到文本文件中"$name"
  3. 如果文件有效,请对其进行 gzip:gzip "$name". 否则,rm "$name"

现在我想添加一个额外的步骤来删除文件,如果相同的数据在前一天也可用(并创建符号链接或硬链接)。

起初我想使用md5sum "$name",但这不起作用,因为我还存储了文件名和创建日期。

是否gzip可以选择比较两个 gzipped 文件并告诉我它们是否相等?如果gzip没有这样的选择,还有其他方法可以实现我的目标吗?

gzip file-comparison

15
推荐指数
2
解决办法
3万
查看次数

严格逐行比较两个文件,没有插入或删除

我有两个文件,它们基本上包含十六进制格式的内存转储。目前我使用 diff 来查看文件是否不同以及差异在哪里。然而,当试图确定差异的确切位置(即内存地址)时,这可能会产生误导。考虑以下并排显示两个文件的示例。

file1:       file2:

0001    |    0001
ABCD    |    FFFF
1234    |    ABCD
FFFF    |    1234
Run Code Online (Sandbox Code Playgroud)

现在diff -u将显示一个插入和一个删除,尽管两个文件之间的 3 行(内存位置)发生了变化:

 0001
+FFFF
 ABCD
 1234
-FFFF
Run Code Online (Sandbox Code Playgroud)

是否有一种简单的方法来比较这两个文件,以便每行仅与另一个文件中的同一行(就行编号而言)进行比较?因此,在此示例中,它应该报告最后 3 行已更改,以及从file1和更改的行file2。输出不必是 diff 样式,但如果它可以着色会很酷(目前我diff -u使用颜色为输出着色,sed以便可以轻松适应)。

command-line diff file-comparison

15
推荐指数
1
解决办法
1万
查看次数

比较两个文件的匹配行并存储阳性结果

我有两个文件。

文件 1:

A0001  C001
B0003  C896
A0024  C234
.
B1542  C231
.
upto 28412 such lines
Run Code Online (Sandbox Code Playgroud)

文件2:

A0001
A0024
B1542
.
.
and 12000 such lines.
Run Code Online (Sandbox Code Playgroud)

我想将文件 2 与文件 1 进行比较并存储文件 1 中的匹配行。我尝试过 Perl 和 Bash,但似乎都没有工作。

我最近尝试的事情是这样的:

for (@q) # after storing contents of second file in an array
{
        $line =`cat File1 | grep $_`; #directly calling File 1 from bash
        print $line;
}
Run Code Online (Sandbox Code Playgroud)

但它失败了。

bash files file-comparison

14
推荐指数
2
解决办法
6万
查看次数

如何知道一个文本文件是否是另一个的子集

我试图找到一种方法来确定一个文本文件是否是另一个文件的子集。

例如:

foo
bar
Run Code Online (Sandbox Code Playgroud)

是一个子集

foo
bar
pluto
Run Code Online (Sandbox Code Playgroud)

尽管:

foo
pluto
Run Code Online (Sandbox Code Playgroud)

foo
bar
Run Code Online (Sandbox Code Playgroud)

不是彼此的子集...

有没有办法用命令来做到这一点?

此检查必须是交叉检查,并且必须返回:

file1 subset of file2 :    True
file2 subset of file1 :    True
otherwise             :    False
Run Code Online (Sandbox Code Playgroud)

diff files file-comparison text vimdiff

13
推荐指数
1
解决办法
7178
查看次数

如何检查file1是否是file2的前缀?

我有两个大小分别为 124665 和 124858(以字节为单位)的文件,我想检查 file1 是否是 file2 的前缀。

files file-comparison

13
推荐指数
2
解决办法
971
查看次数

bash脚本中的两个文件比较?

如何在shell脚本中找到匹配数据的两个文件并在shell中的另一个文件中重复存储数据?

#!/bin/bash

file1="/home/vekomy/santhosh/bigfiles.txt"
file2="/home/vekomy/santhosh/bigfile2.txt"

while read -r $file1; do
    while read  -r $file2 ;do
        if [$file1==$file2] ;  then
            echo "two files are same"
        else
            echo "two files content different"
        fi
    done
done
Run Code Online (Sandbox Code Playgroud)

我写了代码,但没有用。怎么写?

bash file-comparison

11
推荐指数
2
解决办法
8万
查看次数

如何比较不同行中具有相同数据的两个xml文件?

我有两个文件具有相同的数据但在不同的行中。

文件 1:

<Identities>
    <Identity>
        <Id>048206031415072010Comcast.USR8JR</Id>
        <UID>ccp_test_79</UID>
        <DisplayName>JOSH CCP</DisplayName>
        <FirstName>JOSH</FirstName>
        <LastName>CCP</LastName>
        <Role>P</Role>
        <LoginStatus>C</LoginStatus>
    </Identity>
    <Identity>
        <Id>089612381523032011Comcast.USR1JR</Id>
        <UID>94701_account1</UID>
        <DisplayName>account1</DisplayName>
        <FirstName>account1</FirstName>
        <LastName>94701</LastName>
        <Role>S</Role>
        <LoginStatus>C</LoginStatus>
    </Identity>
</Identities>
Run Code Online (Sandbox Code Playgroud)

文件 2:

<Identities>
    <Identity>
        <Id>089612381523032011Comcast.USR1JR</Id>
        <UID>94701_account1</UID>
        <DisplayName>account1</DisplayName>
        <FirstName>account1</FirstName>
        <LastName>94701</LastName>
        <Role>S</Role>
        <LoginStatus>C</LoginStatus>
    </Identity>
    <Identity>
        <Id>048206031415072010Comcast.USR8JR</Id>
        <UID>ccp_test_79</UID>
        <DisplayName>JOSH CCP</DisplayName>
        <FirstName>JOSH</FirstName>
        <LastName>CCP</LastName>
        <Role>P</Role>
        <LoginStatus>C</LoginStatus>
    </Identity>
</Identities>
Run Code Online (Sandbox Code Playgroud)

如果我使用diff file1 file2命令,我会得到以下响应:

1,10d0
<     <Identities>
<         <Identity>
<             <Id>048206031415072010Comcast.USR8JR</Id>
<             <UID>ccp_test_79</UID>
<             <DisplayName>JOSH CCP</DisplayName>
<             <FirstName>JOSH</FirstName>
<             <LastName>CCP</LastName>
<             <Role>P</Role>
<             <LoginStatus>C</LoginStatus>
<         </Identity>
20a11,20
>     <Identities>
>         <Identity>
> …
Run Code Online (Sandbox Code Playgroud)

shell bash xml file-comparison

10
推荐指数
1
解决办法
3万
查看次数

标签 统计

file-comparison ×10

bash ×3

diff ×3

files ×3

command-line ×1

directory ×1

find ×1

gzip ×1

rsync ×1

shell ×1

text ×1

vimdiff ×1

xml ×1