Linux 如何查找文件并在其上执行程序
我试图在Linux中运行一个语法如下的程序:Linux 如何查找文件并在其上执行程序,linux,bash,shell,Linux,Bash,Shell,我试图在Linux中运行一个语法如下的程序: BET2 <input file> <output file> BET2 这个程序将拍摄一幅图像并对其进行一些预处理,然后保存到一个新文件中。现在我可以正确运行程序了。但是,我有大约100万张图像,我不想手动逐个运行它们。 所以,我的问题是,我有没有办法做到以下几点: 查找当前目录下的所有图像(.jpg文件) 让每个图像(something.jpg)成为预处理程序的输入,并用something_processed.jpg命
BET2 <input file> <output file>
BET2
这个程序将拍摄一幅图像并对其进行一些预处理,然后保存到一个新文件中。现在我可以正确运行程序了。但是,我有大约100万张图像,我不想手动逐个运行它们。所以,我的问题是,我有没有办法做到以下几点:
你可以用像这样的东西
ls *.jpg | xargs -I{} BET2 {} processed_{}
您可以通过执行类似于以下命令的命令来完成任务:
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
希望有帮助:)可能重复的、、等。您在哪里遇到问题?如果以这种方式生成的文件列表大于命令行中的最大文件数,则此操作将中断。此外,具有嵌入换行符的名称的文件也会导致问题。还应该注意的是,这只会在当前目录中查找文件。也许这是,也许这不是OP想要的。他写的(有点不清楚)“在当前目录下”,而不是“在当前目录下”,我理解这是指“当前目录下的某个子目录”。