【问题标题】:Using grep invert function to compare two md5 hash lists使用 grep 反转函数比较两个 md5 哈希列表
【发布时间】:2013-10-27 19:32:39
【问题描述】:

我在 Linux 中使用 losttup 挂载了两个 .dd 映像,并为这些映像上的每个文件创建了一个哈希值列表:

md5deep -r  -e * > winXPimage1.txt
md5deep -r  -e * > winXPimage2.txt

这是两个哈希列表的样子:

d41d8cd98f00b204e9800998ecf8427e  /media/74444E0F444DD510/AUTOEXEC.BAT
17d7055859d99a0d606cfaf17ae38638  /media/74444E0F444DD510/boot.ini
d41d8cd98f00b204e9800998ecf8427e  /media/74444E0F444DD510/CONFIG.SYS
88cf0ff92a4a9fa7bd9b7513b2e9e22b  /media/74444E0F444DD510/Documents and Settings/…
 Etc…

这两个图像包含 Windows XP 安装文件和标准程序。然而,第二张图片也包含很多图片(jpg、png 等)。

我想使用 grep 来比较我创建的两个哈希列表,并从第二张图片中过滤掉与 .jpg 文件相关的所有哈希。

我使用以下命令从第一张图片中删除了所有不必要的信息:

cut -f 1 -d ' ' winXPimage1.txt > winXPimage1New.txt

所以现在 image1 哈希列表如下所示:

d41d8cd98f00b204e9800998ecf8427e
17d7055859d99a0d606cfaf17ae38638
d41d8cd98f00b204e9800998ecf8427e
etc…

我正在尝试使用 grep invert 命令比较 winXPimage1New.txtwinXPimage2.txt(包含 jpeg 哈希值)并显示所有不匹配的 jpg 哈希行:

grep -v -f winXPimage1New.txt winXPimage2.txt/*.jpg
grep -v -f .*[.jpg] winXPimage1New.txt winXPimage2.txt

这些命令都不会从第二个图像哈希列表中返回 jpg 哈希值。我只是不确定我必须将 .jpg 文件扩展名放在哪里,因为我对 Linux 非常陌生。

【问题讨论】:

  • 我想你想要diff

标签: linux command-line grep file-extension


【解决方案1】:

所以你想过滤 .jpg 文件?

您能否首先仅过滤哈希列表中的.jpg 文件,例如

grep -E '\.[jJ][pP][eE]?[gG]$' winXPimage1.txt >only-jpeg1.txt
grep -E '\.[jJ][pP][eE]?[gG]$' winXPimage2.txt >only-jpeg2.txt

然后在第一个系统上获取您的 md5 列表:

cut -f 1 -d ' ' only-jpeg1.txt > only-jpeg1-md5only.txt

终于尝试反向搜索了吗?

grep -v -f only-jpeg1-md5only.txt only-jpeg2.txt

更新:必须进行编辑,因为我的前两行示例行有 -v 标志,这是我绝对不想要的。被@Alex 发现。

【讨论】:

  • 非常感谢您的回复,PP。我使用了您提供的前两个命令,并在我的桌面上创建了“only-jpeg1.txt”和“only-jpeg2.txt”文件。唯一的问题是这些文件不包含任何 jpg 文件及其哈希值。我假设“only-jpeg.txt”文件应该只包含 jpeg 哈希值?
  • 哎呀!我是个白痴。拉出 jpeg 时,从 grep 中删除 -v 标志。 -v 反转搜索,返回所有 匹配的行。对不起。
  • @Alex 老实说,我之前没有意识到 grep 有一个 -f 标志,所以你教会了我一些新东西。这是一个我之前已经解决过很多次的问题,但是以艰难的方式做事(将 SHA1 存储到数据库中),而不是像你那样只使用 grep。你的方法给我留下了深刻的印象。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-08-20
  • 2011-05-29
  • 2012-03-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多