【发布时间】:2021-08-13 04:31:35
【问题描述】:
我有两个目录,每个目录有 50 个文件(例如),我需要按顺序进行比较。
说 dir1/file00 需要与 dir2/file00 比较,dir1/file01 与 dir2/file01 比较,dir1/file02 与 dir2/file02 等等。
我有一个 python 脚本来进行我需要在 shell 脚本中调用的比较。我将如何遍历这两个目录并将文件作为参数传递给 python 脚本?我需要将两个目录中的文件依次传递给脚本。
很抱歉,如果以前有人问过这个问题,我在任何地方都找不到好的解决方案,而且我对 shellscripting 还是很陌生。
【问题讨论】:
-
为什么要写任何东西,这就是
diff的用途,例如diff -uN dir1 dir2。 (请参阅选项-Z、-b、-w、-B以了解空格控制) -
@SHA : 你想如何处理只在一个目录中而不在另一个目录中的文件?如果有子目录,想要的效果是什么?
-
@user1934428 文件遵循编号系统,因此将在开始时进行处理。它们是计算机生成的文件,因此它们丢失的可能性很小,目前我不需要担心。无论哪种方式,我最终都使用了大括号扩展,它实现了我的目的:)
-
@DavidC.Rankin 实际上我最后确实使用了 diff 来比较每个目录中的文件!但由于我需要打印出每个文本文件中各种差异的报告,我不得不求助于调用另一个脚本,该脚本包含该部分代码,文件本身作为命令行参数。
-
@SHA :不要忘记大括号扩展是相当固定的。如果你有一天 51 个文件,你必须编辑你的脚本。鉴于您的常规编号,通配符模式
file[0-9][0-9]会更灵活(至少允许最多 99 个文件)。