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

16 浏览
0 Comments

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

我试图在Linux中运行一个类似于以下语法的程序:\n

BET2 <输入文件> <输出文件>

\n该程序会对图像进行一些预处理,然后保存到一个新的文件中。现在我可以正确运行该程序。然而,我有大约一百万张图像,我不想手动一个个运行它们。
\n所以,我的问题是,有没有办法做到以下几点:\n

    \n

  1. 找出当前目录下的所有图像(.jpg文件)
  2. \n

  3. 让每个图像(something.jpg)成为预处理程序的输入,并将输出命名为something_processed.jpg
  4. \n

0
0 Comments

问题的出现原因:

用户想要在指定文件夹中找到所有的jpg文件,并对每个文件执行一个程序进行图像预处理。然而,用户可能不知道如何在命令行中找到文件并执行程序。

解决方法:

用户可以通过执行以下类似的命令来实现任务:

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

希望对您有所帮助 🙂

0
0 Comments

问题的出现原因:

- 如果通过上述方法生成的文件列表超过命令行中允许的最大文件数,就会出现问题。

- 如果文件名中包含换行符,也会导致问题。

- 这种方法只能找到当前目录中的文件,可能不符合问题的要求。

解决方法:

- 使用find命令可以解决上述问题。

- 可以通过以下命令找到当前目录及其子目录下的所有文件,并执行相应的程序:

find . -type f -name "*.jpg" -exec BET2 {} processed_{} \;

0