如何在 Makefile 中使用匿名 fifo?

How to use an anonymous fifo in a Makefile?

是否可以在 Makefile 中使用匿名 fifo?

我试过以下方法:

%.html: %.txt
        pandoc -o $@ <(sed 's%•%*%' $<)

但是我从 /bin/sh 得到语法错误。

  1. 如何在 Makefile 中使用匿名 fifo?
  2. 对于 pandoc 使用简单的正则表达式(甚至简单的查找和替换)过滤器是否有更好的解决方案?

这个make使用/bin/sh执行命令,/bin/sh不理解<(...)进程替换语法

幸运的是,pandoc 在其命令行中不需要文件名。如果未指定文件名,则 pandoc 从其标准输入流中读取,因此您应该能够通过普通管道将 sed 命令的输出提供给它,如下所示:

sed 's%•%*%' "$<" | pandoc -o "$@"