2014-10-30 56 views
-1

我想編寫一個在許多文本文件上運行.cpp程序的bash腳本(我將從此將這些文本文件稱爲輸入文件)。 .cpp程序假定在同一目錄級別中有一個名爲「input.txt」的輸入文本文件。但是,我想要通過程序運行的輸入位於子目錄中,並且有多個輸入txt文件可供我通過該程序運行。我可以使用什麼cmd來查找目錄中名稱爲某種形式的所有(文本)文件?

txt文件使用以下慣例命名輸入: input1.txt,input2.txt,input3.txt,等...

它們被放在一個名爲「myInputs」文件夾中包含的文字具有類似名稱的文件,例如input1.txt.Sol,我不感興趣。

我希望在腳本中使用的命令應該在'myInputs'中查找以下格式的txt文件:input%.txt其中%可能是一個數字。對於該表單的每個文件,該腳本應逐行打印出文件的名稱。即input1.txt應該在它自己的行上,input2.txt應該在它自己的行上。

任何提示被讚賞!

+0

你能顯示實際的目錄結構,而不是試圖解釋它。 'find myInputs -name'input * .txt''做你想要的嗎? – 2014-10-30 01:07:11

+0

我不知道如何「顯示」你的實際目錄結構而不描述它,對不起。我可以想到的最簡單的描述是:myInputs是myProgram中的一個目錄,它包含.cpp可執行文件。 – 2014-10-30 01:21:26

+0

find myInputs -name'input * .txt'是一個很好的建議,但它是用myInputs找到的文本文件的前綴/這不是我正在尋找的。有什麼方法可以刪除? – 2014-10-30 01:24:18

回答

1

有一個叫bash命令找到 http://unixhelp.ed.ac.uk/CGI/man-cgi?find

#include <stdio.h> 
#include <stdlib.h> 

int main(int argc, char *argv[]) { 
    (void)system("find \"MyInputs\" \"input*.txt\""); 

    /* whatever comes next */ 

    return 0; 
} 

不幸的是,我不知道多少C++,但這裏的一個在C段

+0

也許你可以寫一個使用的例子嗎? – Tacet 2014-10-30 01:11:32

+0

找到「MyInputs」「input * .txt」是粗略的語法,但在C或Cpp程序中,您需要使用system()或exec()來運行bash腳本。然後在腳本中運行cpp代碼 – spb1994 2014-10-30 01:14:41

+0

不在這裏,在您的答案!會更有價值。 – Tacet 2014-10-30 01:16:23

相關問題