Shell脚本来验证数据包

时间:2018-09-15 16:08:44

标签: macos function shell unix

我需要制作shell脚本来检查我的算法是否有大量数据(测试保存在.in文件中的包,每个包都包含带有.in文件的文件夹,而另一个带有.out文件的文件夹,应该是正确的结果) 有时,一个包中大约有1000个文件,因此没有必要手动进行。我需要某种循环来打开此.in文件,然后重定向我的c ++程序的输入,还重定向该程序的输出(将结果保存到.out文件),但是要点是我无法尽快获得所需的这种语言。 我希望该脚本将我的算法结果与包中的.out文件进行比较

for f in ExternalIn/*.in; do//part of code which opens process with my algorithm and compare its .out file to .out file from package

1 个答案:

答案 0 :(得分:1)

跳过检查丢失的文件,空白安全性等,您可能需要以下内容:

for f in ExternalIn/*.in; do
    # diff the result of my_cpp_app eating file.in with file.out
    # and store the comparison result in file.diff
    diff ${f/.in/.out} <(my_cpp_app <$f 2>/dev/null) > ${f/.in/.diff}
done

尽管我可能会使用find / xargs管道来做到这一点,这不仅更安全,而且允许并行执行。

甚至为此编写一个Makefile并使用make,毕竟这是用于完成此类工作的工具。