使用sed命令时,我收到以下错误:无法解析函数。任何解决方案或原因?

时间:2011-04-12 14:29:44

标签: linux unix ant sed

我需要用另一个字符替换文本文件中的特定字符。例如,将“E”替换为“A”:

  

Apple iceApplA Ica

执行sed 's/E/A' < apple.txt > app.txt时收到错误

  

无法解析函数

请帮忙!我需要使用Antscript自动执行此操作。

3 个答案:

答案 0 :(得分:3)

您应该使用斜杠(sed)终止/命令,并且我想您要将E的所有事件与A进行交换}?然后,您必须为全局替换添加g

sed 's/E/A/g' app.txt

答案 1 :(得分:3)

sed 's/E/A/g' app.txt。您错过了跟踪/g表示所有事件),

答案 2 :(得分:1)

由于您处于Ant环境中,您可能根本不需要执行sed,而是使用带有过滤器的复制任务或ReplaceRegExp任务。

<?xml version="1.0" encoding="UTF-8"?>
<project>
    <replaceregexp file="apple.txt" flags="g" match="e" replace="A"/>
</project>

这会改变文件:

$ cat apple.txt
Apple ice
$
$ ant
Buildfile: build.xml

BUILD SUCCESSFUL
Total time: 0 seconds
$
$ cat apple.txt
ApplA icA

你的例子很奇怪(a | A,e | E)。我会假设这是错字。

跟进:申报编码......

<?xml version="1.0" encoding="utf-8"?>
<project>
    <replaceregexp file="apple.txt" encoding="utf-8" flags="g" match="Á" replace=" "/>
</project>

我成功测试了这个。之前:

ApplA icA
ApplÁs icÁs

后:

ApplA icA
Appl s ic s