我知道下面的perl内衬非常简单,可以工作并且可以用全局替换A代替;但是如何在makefile中运行它?
perl -pi -e "s/a/A/g" filename
我已经尝试了(我现在认为该帖子的其余部分都是垃圾,因为shell命令会进行命令行扩展-不是我想要的!)上面的问题仍然存在!
APP = $(shell perl -pi -e "s/a/A/g" filename)
有无以下行
EXE = $(APP)
我总是收到以下错误
make: APP: Command not found
我认为它来自启动APP的行
谢谢
最佳答案
如果要将perl作为目标操作的一部分运行,则可以使用
$猫Makefile
全部:
回声abc | perl -pe's/a/A/g'
$使
回声abc | perl -pe's/a/A/g'
美国广播公司
(请注意echo
之前有一个TAB字符。)
Perl的-i
选项用于就地编辑文件,但这会混淆make
(除非您正在编写phony target)。一种更典型的模式是从源头确定目标。例如:
$猫Makefile
全部:bAr
bAr:bar.in
perl -pe's/a/A/g'bar.in> bAr
$ cat bar.in
酒吧
$使
perl -pe's/a/A/g'bar.in> bAr
$ cat bAr
酒吧
如果您让我们知道您要做什么,我们将为您提供更好,更有用的答案。
关于perl - 如何从Makefile运行Perl One衬纸?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2127256/