2013-04-10 83 views
1

說我有以下文件執行多個文件的命令:使用命令行

myfile1_1.dat 
myfile1_2.dat 
myfile2_1.dat 
myfile2_2.dat 
... 

,我想對他們每個人(使用相同的命令,而在不開始目錄忽略了其他文件與myfile)。有沒有一個簡單的方法來做到這一點?

到目前爲止,我一直在玩弄通配符:

mycommand myfile*.dat 

編輯:我使用Linux和MinGW的

回答

1

mycommand myfile*.dat只有在mycommand支持多個文件時纔有效。如果沒有,你可以使用xargs到一個單一的文件傳遞給mycommand,如下圖所示:

echo myfile*.dat | xargs -n 1 mycommand 

或者,使用一個循環:

for file in myfile*.dat; do 
    mycommand "$file" 
done 
+1

我必須抗議'xargs'例子,理由是讀者可能不知道文件名將被分割爲空白。 OP的示例文件可能是免疫的,但未來的讀者可能不會。使用循環,盧克。 – kojiro 2013-04-10 11:22:28

0

如果你在Linux中這樣做,我通常使用xargs -n1

ls | xargs -n1 echo File: 
+1

-1 HTTP://mywiki.wooledge。 org/ParsingLs – kojiro 2013-04-10 11:22:48