2014-02-10 83 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

相關問題