【发布时间】:2015-04-10 14:21:55
【问题描述】:
我正在使用 C shell 脚本。我有 2 个目录名称 dir1 和 dir2 并且都包含 n 个文件。我必须同时处理这些文件。让我解释一下:我有一个命令可以进行一些处理并给出输出。例如。
score = custom_command (file from dir1 , file from dir2)
我需要将其作为批处理来执行。如何编写脚本来执行此操作?
这是我所做的(算法),但它不起作用:我认为这是一个逻辑缺陷。 也欢迎在 python 语言中提供任何帮助,我想知道我们没有通过多个目录读取文件的功能。
foreach filename1 in dir1
cd dir2
foreach filename2 in dir2
cd -
score = custom_command ($filename1 , $filename2)
end
end
【问题讨论】:
-
使用 csh 但任何算法也可以。
-
在 bash 中很确定你可以做类似
for i in /dir1/*;do score=custom_command(dir1/${i##*/},dir2/${i##*/});done的事情。您的命令也不会针对两个目录中的每个文件对每个文件执行自定义命令,而不仅仅是对应的文件。 -
s 在 Python 中,我也可以为此目的使用 python。如果可能的话,建议在 python lang 中使用一些解决方案。
-
人们要求澄清他们的答案,但只是为了做到这一点:您是否尝试进行 N^2 处理(dir1 中的每个 n 个文件与 dir2 中的每个 n 个文件)或者是存在相关性,因此您拥有完全相同的文件(具有不同的数据),因此只执行 n 个处理步骤(dir1 中的 n 个文件中的每一个仅针对 dir2 中的相应文件)?