我可以在命令行中编写一个脚本来迭代目录中的所有文件吗?

时间:2012-01-31 06:14:23

标签: linux command-line

我通常会为以下命令编写一个脚本,但这次我只想使用它一次,因此想在命令行中编写它。

该脚本处理目录中的所有文件。

for FILE in *.tif     # grab all the tif files
do
    NEWFILE=test/${FILE}   # create the new file name
    gdal_translate -a_srs EPSG:25832  $FILE $NEWFILE
done
抱歉......我忘了提到我确实尝试过“ 对于* .tif中的FILE做NEWFILE = test _ $ {FILE} gdal_translate -outsize 50%50%%FILE%NEWFILE done“ ..但它冻结了>在下一行...好像在等待别的东西。

2 个答案:

答案 0 :(得分:0)

交互式命令和脚本之间基本没有区别。如果要将命令放在一行上,请用分号而不是换行符分隔它们。

for f in *.tif; do gdal_translate -a_srs EPSG:25832  $f test/$f; done

如果您的命令尚未完成,则shell会显示辅助提示,例如,如果您位于带引号的字符串或复合命令的中间,或者前一行以反斜杠结束。

答案 1 :(得分:0)

您的脚本行之间需要使用分号。尝试

 for FILE in *.tif; do NEWFILE=test/${FILE}; gdal_translate -a_srs EPSG:25832 $FILE $NEWFILE; done