Run shell script for every file in directory

ぐ巨炮叔叔 提交于 2021-02-07 07:14:05

问题


I have a bunch of files in a directory all named 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

sh Calculate.sh MyFile

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

How would i go about doing this, xargs ??


回答1:


Have you tried the find command with execution ?

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

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



回答2:


A simple for loop in the shell:

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



回答3:


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




回答4:


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


来源:https://stackoverflow.com/questions/10259836/run-shell-script-for-every-file-in-directory

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!