标签: file-comparison

Shell脚本将文件内容与字符串进行比较

我有一个字符串"ABCD"和一个文件test.txt.我想检查文件是否只有这个内容"ABCD".通常我只使用"ABCD"获取文件,并且当我得到除此字符串之外的任何其他内容时我想发送电子邮件通知,因此我想检查这种情况.请帮忙!

unix bash shell file-comparison

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

比较两个版本的文件并将更改应用于旧文件

我一直在搜索和搜索这个问题很多,我已经知道如何比较两个文件(哈希,校验和等).但这不是我需要的.我需要的内容如下所述.

让我们假设我有一个文件,我已经备份了它.后来我对这个文件做了一些更改,所以我想对备份版本应用更改.由于两个文件可以很大并且更改可以很小,我不想重写所有文件,因为我打算通过互联网(可能是FTP)备份它可能需要花费很多时间.

我怎么看这个(样本):

备份版本的文件(字节)

134 253 637 151
Run Code Online (Sandbox Code Playgroud)

较新版本的文件(字节)

134 624 151 890
Run Code Online (Sandbox Code Playgroud)

我们不应该重写所有字节,而应该:

  1. 改变253624(变化字节)
  2. 删除637字节(删除字节)
  3. 890在文件末尾(插入字节)

在每种情况下,1,2,3选项不一定同时出现.请注意,备份文件可能位于其他位置,我只能通过Internet访问它(服务器可以返回一些内容,以便我们可以比较文件).

我怎么能得到这个?我知道这可能是因为我知道软件在哪里实现(但无法找到方法).任何提示,教程等都受到欢迎和高度评价.提前致谢.

c# algorithm file-comparison

4
推荐指数
1
解决办法
383
查看次数

如何在python中比较两个文件并打印不匹配的行号?

我有两个包含相同行数的文件.

"file1.txt" contains following lines:

 Attitude is a little thing that makes a big difference
 The only disability in life is a bad attitude
 Abundance is, in large part, an attitude
 Smile when it hurts most

"file2.txt" contains:

 Attitude is a little thing that makes a big difference
 Everyone has his burden. What counts is how you carry it
 Abundance is, in large part, an attitude
 A positive attitude may not solve all your problems  
Run Code Online (Sandbox Code Playgroud)

我想逐行比较两个文件,如果我想要的两个文件之间的任何行不匹配

 print "mismatch in line …
Run Code Online (Sandbox Code Playgroud)

python file-comparison python-2.7

4
推荐指数
1
解决办法
2544
查看次数

Eclipse(3.5)如何水平比较文件?

通常Eclipse'File Compare'比较垂直面板中的文件,如:

使用垂直面板比较

有没有办法可以像水平地比较它们:

使用水平面板进行比较http://www.sqlservertool.com/images/ad_hex_diff_small.gif

每次滚动都很累,看看有什么变化!

谢谢

eclipse compare file-comparison filecompare

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

在unix中使用sdiff输出边差的问题

我使用以下sdiff命令来获取两个文件的并排差异.列宽作为选项之一给出

sdiff -w170/tmp/captureFile/tmp/referenceFile(或diff -y)

如果我使用-w 130则会删除一些字符.即使在下一行,它们也不会出现在输出中.他们失去了.

如果使用-w 170,则由于左列中的额外字符,右列被移位,并且由于屏幕宽度较小,因此在左列部分中看到很少的字符.

那么有没有选择不剥离字符然后在sdiff命令输出的同一列的下一行?

unix diff file-comparison

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

使用perl md5比较两个文件

我想运行一个代码,如果文件存在则继续检查文件是否退出,然后检查文件的MD5与之前的MD5.如果有一些变化,那么它会执行一些代码.但是每次我为同一个文件调用hexdigest时,perl MD%似乎都在变化.MD5每次都会改变吗?

我最初有

$md5 = Digest::MD5->new; 
Run Code Online (Sandbox Code Playgroud)

之前 while(1)

如果不是这样做,还有什么可以实现我的意图吗?谢谢

while(1)
{
    if(!(-e $config_file)){
            next;
    }else{
            $md5 = Digest::MD5->new;
            $md5->addpath($config_file);
            print "<->";
            print $md5->hexdigest;

            $value=($digest eq $md5->hexdigest ? 1 : 0);
            if($value==1)
            {
                    next;
            }else
            {
                    $digest=$md5->hexdigest;
            }
    }
}
Run Code Online (Sandbox Code Playgroud)

perl md5 file-comparison

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

如何比较golang中的两个文件?

使用Python我可以做下一个:

equals = filecmp.cmp(file_old, file_new)
Run Code Online (Sandbox Code Playgroud)

在go语言中是否有任何内置函数可以做到这一点?我用Google搜索但没有成功.

我可以在hash/crc32包中使用一些哈希函数,但这比上面的Python代码更有用.

go file-comparison filecompare

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

当文件不同时,批处理文件比较返回0

我在Windows 2003服务器上使用调度系统,该系统要求批处理文件运行不同的作业.我有一个工作,检查文件是否存在,比较文件是否为空,然后根据结果做一些事情.每次运行时,返回的错误级别为0,但文件不同.我期待看到1回归.

我已经验证了文件的位置,一个文件有内容,另一个文件是空的.我已经设置了提示,他们都说%ERRORLEVEL%是0.我甚至将文件移动到批处理作业的同一目录中,但它们仍显示0.

代码:

echo %ERRORLEVEL%
IF EXIST data.DON ( 
echo before %ERRORLEVEL%
    FC data.DON ZERO.SEQ
echo after %ERRORLEVEL%
    IF %ERRORLEVEL% EQU 1 GOTO :PROCESS
)
Run Code Online (Sandbox Code Playgroud)

输出:

16:37:08.12 Thu 03/29/2012
>IF EXIST data.DON (
echo before 0  
 FC data.DON ZERO.SEQ  
 echo after 0  
 IF 0 EQU 1 GOTO :PROCESS 
) 
before 0
Comparing files data.DON and ZERO.SEQ
***** data.DON
Name|Date|Location    

***** ZERO.SEQ
*****

after 0
Run Code Online (Sandbox Code Playgroud)

我在同一服务器上指向不同数据文件的其他作业中有这个确切的代码,并且它可以工作.我能尝试什么想法?

batch-file file-comparison

2
推荐指数
1
解决办法
5416
查看次数

将两个文件相互匹配,并将输出写为文件 - Python

我是Python的新手.我第二次编码.此脚本的要点是获取包含数千行文件名(sNotUsed文件)的文本文件,并将其与大约50个XML文件进行匹配.XML文件每个最多可包含数千行,并且格式化为大多数XML.我不确定到目前为止代码的问题是什么.代码没有完全完成,因为我没有添加将输出写回XML文件的部分,但是当前的最后一行应至少打印一次.但事实并非如此.

两种文件格式的示例如下:

文本文件:

fileNameWithoutExtension1
fileNameWithoutExtension2
fileNameWithoutExtension3
etc.
Run Code Online (Sandbox Code Playgroud)

XML文件:

<blocks> 

<more stuff="name"> 
     <Tag2> 
        <Tag3 name="Tag3">
                 <!--COMMENT-->
                 <fileType>../../dir/fileNameWithoutExtension1</fileType>
                 <fileType>../../dir/fileNameWithoutExtension4</fileType>
</blocks>
Run Code Online (Sandbox Code Playgroud)

我的代码很远:

import os
import re

sNotUsed=list()
sFile = open("C:\Users\xxx\Desktop\sNotUsed.txt", "r") # open snotused txt file
for lines in sFile:
    sNotUsed.append(lines)
#sNotUsed = sFile.readlines() # read all lines and assign to list
sFile.close() # close file

xmlFiles=list() # list of xmlFiles in directory
usedS=list() # list of S files that do not match against sFile txt

search = "\w/([\w\-]+)"

# getting the list …
Run Code Online (Sandbox Code Playgroud)

python xml text file-comparison

2
推荐指数
1
解决办法
844
查看次数

两个文件是否指向同一个文件?

我想确保两个java.io.File没有指向同一个文件,我尝试了各种方法,最后找到了一种方法,但我想确保它周围没有漏洞.

这很重要,因为我正在尝试编写一个删除重复文件的程序,我不想因为两个java.io.File指向同一个文件而最终删除一个唯一的文件.

File f1 = new File("file.txt");
File f2 = new File("./file.txt");
//these methods can't tell it's the same file
System.out.println(f1.compareTo(f2)); // 56 which mean not equal
System.out.println(f1.equals(f2)); // false
System.out.println(f1 == f2); // false
System.out.println(f1.getAbsolutePath().compareTo(f2.getAbsolutePath())); // 56

// this method can tell it's the same file... hopefully.
try{
    System.out.println(f1.getCanonicalPath().compareTo(f2.getCanonicalPath())); // 0
}catch (Exception e){
    e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)

另一方面,我的try-catch代码有问题吗?我跑的时候会给我一个警告.

java file-comparison

2
推荐指数
1
解决办法
1061
查看次数

标签 统计

file-comparison ×10

filecompare ×2

python ×2

unix ×2

algorithm ×1

bash ×1

batch-file ×1

c# ×1

compare ×1

diff ×1

eclipse ×1

go ×1

java ×1

md5 ×1

perl ×1

python-2.7 ×1

shell ×1

text ×1

xml ×1