在ApacheAnt中,我希望替换文件中的字符串,但仅替换字符串的特定出现

在ApacheAnt中,我希望替换文件中的字符串,但仅替换字符串的特定出现,ant,Ant,在ApacheAnt中,我希望替换文件中的字符串,但仅替换字符串的特定出现。我有一个for循环,我只想用它的关联for loops param值替换循环编号的出现(第一个循环查找第一个出现,第二个循环查找第二个字符串出现) <exec executable="${postgres-bin-dir}/psql" outputproperty="update-primary-keys-values-@table"> <arg line="-A -t --host ${sour

在ApacheAnt中,我希望替换文件中的字符串,但仅替换字符串的特定出现。我有一个for循环,我只想用它的关联for loops param值替换循环编号的出现(第一个循环查找第一个出现,第二个循环查找第二个字符串出现)

<exec executable="${postgres-bin-dir}/psql" outputproperty="update-primary-keys-values-@table">
   <arg line="-A -t --host ${source-target-comparison-hostname} --port 5432 --username 'postgres' -d ${source-target-comparison-databasename} -c &quot;array_to_string(ARRAY(select ${primary-keys-@{table}} from stage.@{table} t where t not in (select t from public.@{table} t) and t.${primary-keys-@{table}} not in (select ${primary-keys-@{table}} from stage.@{table} where ${primary-keys-@{table}} not in (select ${primary-keys-@{table}} from public.@{table})) order by ${primary-keys-@{table}}), ',')&quot;"/>
</exec>

<for list="${update-primary-keys-values-@table}" param="keys-values">
    <replace file="${updates-dir}/updates@{table}.sql" token=");" value=") WHERE ${primary-keys-@{table}} = @{keys-values};"/>
</for>


也许我误解了,但是如果你在第一次循环迭代中替换第一次出现,这是否意味着在第二次迭代中,以前的第二次出现现在将是第一次出现?是的,你是对的!!!我不知道我怎么会错过这个。