使用m4包含文件内容而不处理它们?

  • 本文关键字:处理 m4 包含 文件 使用 m4
  • 更新时间 :
  • 英文 :


我知道使用GNU m4undivert是可能的,以及其他使用paste的实现。但是,有没有办法做到这一点,而不是特定于实现?

您可以使用syscmd宏调用外部命令。

syscmd(`cat hello.c')dnl

注意:在分流中插入的文本被M4扫描,所以你不能手动复制文件的内容。

$ m4 foo
define(`foo', `FOO')dnl
divert(`1')dnl
foo
divert`'dnl
The quick brown fox jumped over the lazy dog.
undivert(`1')dnl
=> The quick brown fox jumped over the lazy dog.
=> FOO

扩展另一个答案,也undivert(path/to.txt)工作,但可能只与gnu m4。正如@uzsolt的注释所说,它违反了posix标准(在posix标准上,唯一可接受的参数是一个介于0到9之间的数字,包含一个临时缓冲区)。

相关内容

  • 没有找到相关文章

最新更新