如何在BASH中自动添加多个文件?

时间:2013-12-04 21:50:19

标签: python linux bash shell

我有一个Python代码,它接受多个输入文件并将它们合并为一个单独的输出文件。我想创建一个自动添加输入文件的bash脚本,而不需要我手动编写infile1 infile2等。以下是我想出的内容:

FILE= `find ~/Desktop/folder -name '*.tif'`
for i in $FILE
do
gdal_merge.py -o mosaic -of GTiff $i
done

但由于某种原因,我收到了这个错误:

Syntax error: word unexpected (expecting ")")

3 个答案:

答案 0 :(得分:0)

您可以尝试使用-exec选项查找:

find ~/Desktop/folder -name '*.tif' -exec gdal_merge.py -o mosaic -of GTiff {}

答案 1 :(得分:0)

我的猜测是你的一些文件包含特殊字符,如()或空白字符会导致麻烦。通常,' - x'选项会显示正在发生的事情。可以在脚本开头bash -x my_script或添加set -x

作为替代方案,在处理特殊字符方面稍微好一点,试试这个:

find ~/Desktop/folder -name '*.tif' -print0 | xargs -0 -n1 gdal_merge.py -o mosaic -of GTiff 

答案 2 :(得分:0)

这可能有效:

FILE=`find ~/Desktop/folder -name '*.tif'`
gdal_merge.py -o mosaic -of GTiff "$FILE"