如果值有哈希值,如何强制m4继续处理行?
$ echo a a a | m4 -D a=B+
B+ B+ B+
$ echo a a a | m4 -D a=B#
B# a a
我想要第二种情况的相同行为 - 这可能吗? (所有三次更换)。
据我所知,观察到的行为不一致,我在用户手册中找不到解释。
答案 0 :(得分:4)
#
字符是注释的第一个字符,换行符是最后一个字符。 m4
解析第一个a
并将其替换为B#
。它没有扫描更多,因为它会发表评论。
解决方案是使用changecom
更改注释字符:
$ echo "changecom(BC,EC)a a a" | m4 -D a=B#
B# B# B#
当然,您可以选择更好的评论开始和结束序列。
聚苯乙烯。您可以使用简单changecom
不带参数关闭注释:echo changecom a a a
。您可以从手册中阅读:)