m4 - 使用 m4 包含文件内容而不处理它们?
问题描述
我知道使用 GNU m4 是可能的undivert
,而在其他实现中使用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
推荐阅读
- function - 如何使用`letrec`在函数“lengh-it”的主体内定义函数“length”
- python - 绘制直方图时遍历数据框
- python-3.x - 如何按日期对这个多解析文件脚本的结果进行排序?
- javascript - 将正则表达式与否定相结合
- javascript - 检查 utc 日期是否已更改 JavaScript
- javascript - react.js 中的常见组件问题
- javascript - 将fullcalendar javascript点击数据获取到django modelform
- sql-server - SQL Server 中列的单个数据中后跟管道符号的数字计数
- silverstripe-4 - 如何在silverstripe中创建带有成功消息重定向的自定义html表单?
- python - Docker 在默认安装的 git 路径而不是 Windows 上的工作目录上运行