2013-04-10 57 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