我正在并行运行gdalinfo
命令,以从*.tif
文件中获取统计信息。
find *tif -printf "%f\n" | parallel -j 5 "/usr/local/bin/gdalinfo -mm -stats -hist -json {} > {}.json"
{}
将被正在处理的文件替换,例如SRTM.tif
,因此输出文件名为:SRTM.tif.json
如何在{}
上进行字符串替换?
在Bash中使用循环,我通常会使用${f%.tif}.json
,但这不起作用(我们没有一个bash变量),也尝试过awk
,但没有成功。
find ... | cut -d"." -f1 | parallel ...
怎么样? - Walter Afind *tif -printf "%f\n" | cut -d "." -f1 | parallel -j 5 "/usr/local/bin/gdalinfo -mm -stats -hist -json {}.tif > {}.json"
- Jorge Mendesfind
命令,确保您想要执行的是find *tif-printf "%f\n"
(它会查找所有路径下的tif
文件),而不是find . -type f -name '*tif'
(它只会在当前目录下查找以tif
结尾的文件并进行打印)。 - Ljm Dullaart