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

时间:2022-12-03 02:22:40

I have a bunch of files in a directory all named YYYY_MM_DD

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

I have a shell script that accepts a file as a paramater and calculates figures based on the data in the file, i call the script like this

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

sh Calculate.sh MyFile

I want to run this shell script for every file in this directory.

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

How would i go about doing this, xargs ??

我怎么会这样做,xargs?

4 个解决方案

#1


5  

Have you tried the find command with execution ?

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

My sample will echo the files, but you can call a shell script with the filename as a parameter

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

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

#2


4  

A simple for loop in the shell:

shell中一个简单的for循环:

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

#3


1  

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

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

#4


1  

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

#1


5  

Have you tried the find command with execution ?

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

My sample will echo the files, but you can call a shell script with the filename as a parameter

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

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

#2


4  

A simple for loop in the shell:

shell中一个简单的for循环:

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

#3


1  

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

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

#4


1  

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