如何查找文件并在其上执行程序

时间:2019-03-26 02:35:15

标签: linux bash shell

我试图在Linux中使用如下语法运行程序:

BET2 <input file> <output file>

该程序将拍摄图像并对其进行一些预处理,然后保存到新文件中。现在,我可以正确运行该程序了。但是,我有大约一百万张图像,我不想手动运行它们。
因此,我的问题是,有什么办法可以执行以下操作:

  1. 找到当前目录下的所有图像(.jpg文件)
  2. 让每个图像(something.jpg)作为预处理程序的输入,并用something_processed.jpg命名输出

2 个答案:

答案 0 :(得分:0)

您可以使用类似的

 ls *.jpg | xargs -I{} BET2 {} processed_{}

答案 1 :(得分:0)

您可以通过执行类似于以下命令的命令来完成任务:

cd "/path/to/the/folder/containing/your/images"
for CURRENT_IMAGE in `find *.jpg -maxdepth 0`; do
  echo "Preprocessing image file $CURRENT_IMAGE"
  # Your program that performs the image preprocessing 
  BET2 "$CURRENT_IMAGE" "${CURRENT_IMAGE}_processed.jpg"
done

希望它会有所帮助:)