可执行文件sed

use*_*847 2 ant sed exec

想要使用ant替换macOS上txt文件中的值。我使用了以下代码,但出现错误:“该类型不支持嵌套文本数据(“”)“。

<exec executable="sed">
   <arg value="s/old/new/g" />
   <arg value="$MY_FILE" />
 </exec>.
Run Code Online (Sandbox Code Playgroud)

如何替换变量的值,我在Windows上用replace替换了文件,就可以了。

Mar*_* N. 5

也许已经有点晚了,但是我才发现这个问题。希望我的解决方案至少对其他人有所帮助。

缺少一个参数。命令行上的sed需要-f“ / path / to / your scriptfile”的-e“您的表达式”。如果使用蚂蚁,您想直接更改文件(在sed的语音中为“内部”),而不是其他输入/输出文件。因此,您需要添加-i(或更简单的方法是将-e更改为-ie)。因此,正确的调用将是:

<exec executable="sed">
   <arg value="-ie" />
   <arg value="s/old/new/g" />
   <arg value="$MY_FILE" />
</exec>
Run Code Online (Sandbox Code Playgroud)