7

我在一个名为 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 ??

4

4 回答 4

7

您是否尝试过find执行命令?

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

find . -maxdepth 1 -type f -exec echo {} \;
于 2012-04-21T14:49:35.130 回答
5

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

for file in *; do sh Calculate.sh "$file"; done
于 2012-04-21T18:36:55.287 回答
1

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

于 2012-04-21T15:01:36.500 回答
1
./Calculate.sh 2012_04_{05..20}
于 2012-04-22T12:33:37.197 回答