AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / unix / 问题

问题[file-comparison](unix)

Martin Hope
vume
Asked: 2022-07-13 02:02:48 +0800 CST

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

  • 16

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

比如说,除此之外,如果提取并比较了 16 个 16 字节的等距块并且它们也是相同的,那将有大量证据让我假设它们是相同的。有没有类似的东西?

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

find file-comparison
  • 7 个回答
  • 2902 Views
Martin Hope
halloleo
Asked: 2022-04-20 18:26:24 +0800 CST

如何将大文件与进度信息进行比较

  • 0

在 Unix 命令行上下文中,我想比较两个真正巨大的文件(每个大约 1TB),最好使用进度指示器。

我试过diffand cmp,它们都使系统崩溃(macOS Mojave),更不用说给我一个进度条了。

比较这些非常大的文件的最佳方法是什么?

额外细节:

  1. 我只想检查它们是否相同。

  2. cmp以系统确实自行重新启动的方式使系统崩溃。:-( 也许系统内存不足?

command-line file-comparison
  • 3 个回答
  • 140 Views
Martin Hope
Kintaro
Asked: 2022-02-16 08:28:06 +0800 CST

按两列比较多个文件行,匹配第一个比较第二个

  • 0

我有两个像这样的输入文件:

文件 1

ABC001;text;text;5.00;text;text;;20/06/2020;http://www.domain.com/img/foobar4325.jpg
ABC002;text;text;15.20;text;text;;4/12/2021;http://www.domain.com/img/foobar545.jpg
ABC003;text;text;10.00;text;text;;24/07/2021;http://www.domain.com/img/foobar6y6.jpg
ABC004;text;text;4.90;text;text;;31/12/2021;http://www.domain.com/img/foobar5464.jpg
ABC007;text;text;10.30;text;text;;3/12/2021;http://www.domain.com/img/foobar45tgv.jpg
ABC010;text;text;9.00;text;text;;20/12/2021;http://www.domain.com/img/foobar2345f.jpg

file2(“四舍五入”价格不含 .00)

ABC001;text;text;6
ABC002;text;text;15.20
ABC003;text;text;10
ABC004;text;text;5.50
ABC005;text;text;25
ABC007;text;text;10.50
ABC010;text;text;9

所需的输出:

ABC001;text;text;5.00;text;text;;20/06/2020;http://www.domain.com/img/foobar4325.jpg
ABC004;text;text;4.90;text;text;;31/12/2021;http://www.domain.com/img/foobar5464.jpg
ABC007;text;text;10.30;text;text;;3/12/2021;http://www.domain.com/img/foobar45tgv.jpg

这些行需要匹配第一列,然后比较匹配的行“价格”列(第五),如果价格在数字上不同,我只想从 file1 中提取行。

我使用这个(GNU Awk 4.0.2):

awk -F';' -v RS='[\r\n]+' 'FNR==NR{righe[$1]; next} $1 in righe' file1.csv file2.csv > output.csv

比较两个 csv 文件,但我无法添加有条件的价格

awk file-comparison
  • 1 个回答
  • 127 Views
Martin Hope
user393431
Asked: 2020-02-03 23:33:34 +0800 CST

检查一个列表是否包含另一个列表中包含的字符串

  • 0

我有一个字符串列表,比如 file1.txt:

a
B
ccc
    D
   E
 f

和另一个字符串列表,即file2.txt:

    a x y z
  43 5 B aa_f
    <|ccc
 |D>
    E
                            FFF

对于每一行,我想检查 file2.txt 是否包含 file1.txt 的相应行中包含的修剪后的字符串(因此周围没有空格)。例如,两个文件中的第 2 行都包含B,因此该测试的计算结果应为true。但是,两个文件中的最后一行不在子字符串关系中,因为 file1.txt 包含f并且 file2.txt 在该行中没有任何f字符。

file-comparison
  • 2 个回答
  • 1258 Views
Martin Hope
Minz
Asked: 2020-01-08 01:37:34 +0800 CST

没有差异时删除文件

  • 1

我对 bash 完全陌生。我有一个需要执行以下操作的要求:

  • 遍历目录 A 和目录 B 的同名文件夹
  • 找到两个具有相同名称的文件并比较它们(我使用diff <(file1) <(sort file2)来比较文件)
  • 如果没有差异,则删除目录 A 中的文件
  • 如果有差异忽略并处理下一个匹配的文件对
  • 检查每个目录中的下一个文件夹并重复该过程,直到检查完所有匹配的文件夹。

因此,例如在目录 AI 中有文件夹 A 有 2 个文件(文件 1 和文件 2) 在目录 BI 中有文件夹 A 有 3 个文件(文件 1 和文件 2 和文件 3)

  • 两个目录中的 File1 相同 - 从目录 A 中删除
  • file2 存在差异 - 保留在两个目录中
  • file3 什么都不做 - 保留在目录 B

我使用的文件是 xml 文件。文件中标签的顺序有时会有所不同,但内容会完全相同,除非有我想要保留文件的附加内容。我不一定关心标签的顺序是否不同,我只想确保所有内容相同或不同。希望能提供更多的清晰度。

任何帮助将非常感激。

更新:

所以我设法做到了这一点,但是在运行脚本时,控制台中的输出是空白的。它应该列出已发现相同的文件并将其删除,我哪里出错了?

空白的

            declare -a my_array
            shopt -s globstar
            cd /mnt/c/filediff/validation/applications/

            for file in **; do
                if [ -d "$file" ]; then 
                    echo "$file is a directory, skipping."; 
                else
                    fileName=${file#*/}
                    if [[ -e /mnt/c/filediff/package/"$fileName" ]]; then
                        echo diff -q <(sort "$file") <(sort /mnt/c/filediff/package/"$fileName") && 
            my_array=("${my_array[@]}" "$fileName")
                        #rm /mnt/c/filediff/package/"$fileName" 
                    fi
                fi
            done
            echo -e '\nRemoved the following files -----------------------------------'
            for item in "${my_array[@]}"
            do
                echo "ITEM: *** $item ***"
            done
files file-comparison
  • 2 个回答
  • 978 Views
Martin Hope
Mc Jorch
Asked: 2018-09-14 12:54:02 +0800 CST

用一个易于阅读的 GUI 程序比较两个文件?

  • 0

我想比较两个大小不接近 1Gb 的大文件。

Kompare当文件加载很大时崩溃。我配置Kompare如下图:

尝试为大文件配置它

我想以一种对Kompare不熟悉Terminal.

我也尝试过使用以下命令:

diff --speed-large-files a.file b.file

正如这里所建议的:

有没有办法将 diff 的输出转储到文件中,以便稍后可以由另一个程序读取。

diff file-comparison
  • 1 个回答
  • 1347 Views
Martin Hope
Gopinath Pushpa Thirunavukaras
Asked: 2018-08-11 06:41:46 +0800 CST

`cmp -b file1 file2` 响应:“file1 file2 不同:12 字节,第 2 行是 154 l 151 i”,“154”和“151”指的是什么?

  • 3
$ cmp -b file1 file2 
file1 file2 differ: 12 byte, line 2 is 154 l 151 i

在此回复中,“154”和“151”指的是什么?

file-comparison
  • 1 个回答
  • 65 Views
Martin Hope
pau
Asked: 2018-06-01 13:11:12 +0800 CST

比较每行跳过 N 个符号的文本文件

  • 3

我可以比较两个文本文件,从每行的开头跳过 N 个符号吗?

例如文件 1:

2018-05-31 12:00:00 This is the first line of text.
2018-05-31 12:00:00 This is the second line of text.
2018-05-31 12:00:00 This is the third line of text.
2018-05-31 12:00:00 This is the forth line of text.
2018-05-31 12:00:00 This is the fifth line of text.

和文件 2:

2018-05-31 12:00:01 This is the first line of text.
2018-05-31 12:00:02 This is the second line of text.
2018-05-31 12:00:03 This is the third line of text.
2018-05-31 12:00:04 This is the forth line of text.
2018-05-31 12:00:05 This is the fifth line of text.

如果我逐行比较两个文件 - 它们因时间戳中的秒数而不同。

但是,如果我在两个文件(日期和时间)中跳过每行开头的前 19 个符号 - 这些文件是相同的。如何使用 shell 命令(脚本)做到这一点?

非常感谢你提前。

text-processing file-comparison
  • 1 个回答
  • 323 Views
Martin Hope
Milister
Asked: 2018-03-10 10:23:43 +0800 CST

比较 2 个 csv 文件并仅将差异输出到变量中

  • 0

1.csv:

rundeck-read-only-iam-permissions,IAMReadOnlyAccess
citrix-xendesktop-ec2-provisioning",AmazonEC2FullAccess

2.csv:

 citrix-xendesktop-ec2-provisioning",AmazonEC2FullAAA
citrix-xendesktop-ec2-provisioning",AmazonS3FullAccess
rundeck-read-only-iam-permissions,IAMReadOnlyAccess
qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq,qqqqqqqqqqqqqqqq

注意顺序不一样

我想比较文件 2.csv 与文件 1.csv 中的差异(以及 2.csv 中的订单行以匹配 1.csv 中的订单

如果没有更改打印:如果文件 1.csv 中的行发生更改,则没有更改 print 已更改的行 + 行内容,如果文件 1.csv 中的行丢失 print "已删除的行 + 行内容,如果行添加了文件 1.csv 打印“添加了行”+ 行内容,到目前为止,我有这个,它打印所需的输出,但是否可以检测到添加/删除的内容

      comm -1 -3 <(sort 1.csv) <(sort 2.csv)
citrix-xendesktop-ec2-provisioning",AmazonEC2FullAAA
citrix-xendesktop-ec2-provisioning",AmazonS3FullAccess
qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq,qqqqqqqqqqqqqqqq
csv file-comparison
  • 1 个回答
  • 4195 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    模块 i915 可能缺少固件 /lib/firmware/i915/*

    • 3 个回答
  • Marko Smith

    无法获取 jessie backports 存储库

    • 4 个回答
  • Marko Smith

    如何将 GPG 私钥和公钥导出到文件

    • 4 个回答
  • Marko Smith

    我们如何运行存储在变量中的命令?

    • 5 个回答
  • Marko Smith

    如何配置 systemd-resolved 和 systemd-networkd 以使用本地 DNS 服务器来解析本地域和远程 DNS 服务器来解析远程域?

    • 3 个回答
  • Marko Smith

    dist-upgrade 后 Kali Linux 中的 apt-get update 错误 [重复]

    • 2 个回答
  • Marko Smith

    如何从 systemctl 服务日志中查看最新的 x 行

    • 5 个回答
  • Marko Smith

    Nano - 跳转到文件末尾

    • 8 个回答
  • Marko Smith

    grub 错误:你需要先加载内核

    • 4 个回答
  • Marko Smith

    如何下载软件包而不是使用 apt-get 命令安装它?

    • 7 个回答
  • Martin Hope
    user12345 无法获取 jessie backports 存储库 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl 为什么大多数 systemd 示例都包含 WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky 如何将 GPG 私钥和公钥导出到文件 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll systemctl 状态显示:“状态:降级” 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim 我们如何运行存储在变量中的命令? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S 为什么 /dev/null 是一个文件?为什么它的功能不作为一个简单的程序来实现? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 如何从 systemctl 服务日志中查看最新的 x 行 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - 跳转到文件末尾 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla 为什么真假这么大? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis 在一个巨大的(70GB)、一行、文本文件中替换字符串 2017-12-30 06:58:33 +0800 CST

热门标签

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve