2014-02-10 33 views
0

我不知道很多bash脚本,但我知道我想要做的任务会因此而大大简化。我想用许多测试输入文件来测试一个针对预期输出的程序。bash - 通过名称和顺序读取多个输入文件并创建匹配的输出文件

例如,我有名为“input1.txt,input2.txt,input3.text ...”的文件以及文件“output1.txt,output2.txt,output3.txt ...”中的预期输出。我想用每个输入文件运行我的程序并输出相应的“test1.txt,test2.txt,test3.txt ...”。然后我会为每个文件做一个“cmp output1.txt test1.txt”。

所以我认为这将开始这样的.. ..大致

for i in input*; 
do 
    ./myprog.py < "$i" > someoutputthing; 
done 

我有一个问题是:如何将匹配文件名中的数字?谢谢你的帮助。

+0

问@anubhava ...他可以回答 – MLSC

+0

@MortezaLSC:我相信OP接受了下面的答案,因为它对发布的问题非常有效。 – anubhava

+1

@anubhava非常感谢你 – MLSC

回答

1

如果输入文件名模式为inputX.txt,则需要从头开始删除input。您不必删除扩展,只要你想使用相同的输出:

output=output${i#input} 

见参数扩张man bash

相关问题