为目录中的每个文件运行shell脚本

我在一个名为YYYY_MM_DD的目录中有一堆文件

-rw-r--r-- 1 root root 480K Apr 21 13:17 2012_04_05 -rw-r--r-- 1 root root 483K Apr 21 13:17 2012_04_06 -rw-r--r-- 1 root root 484K Apr 21 13:17 2012_04_07 -rw-r--r-- 1 root root 480K Apr 21 13:17 2012_04_08 -rw-r--r-- 1 root root 344K Apr 21 13:17 2012_04_09 -rw-r--r-- 1 root root 66K Apr 21 13:17 2012_04_10 -rw-r--r-- 1 root root 461K Apr 21 13:17 2012_04_11 -rw-r--r-- 1 root root 475K Apr 21 15:09 2012_04_17 -rw-r--r-- 1 root root 480K Apr 21 15:10 2012_04_18 -rw-r--r-- 1 root root 474K Apr 21 15:10 2012_04_19 -rw-r--r-- 1 root root 474K Apr 21 15:10 2012_04_20 

我有一个shell脚本,接受一个文件作为参数,并根据文件中的数据计算数字,我把这个脚本调用

 sh Calculate.sh MyFile 

我想为这个目录中的每个文件运行这个shell脚本。

我怎么去做这个,xargs

你有执行find命令吗?

我的示例将回显文件,但是您可以使用文件名作为参数调用shell脚本

 find . -maxdepth 1 -type f -exec echo {} \; 

一个简单的for循环在shell中:

 for file in *; do sh Calculate.sh "$file"; done 

find . -maxdepth 1 -type f | xargs -n 1 -I % Calculate.sh %

 ./Calculate.sh 2012_04_{05..20}